openid_openid获取 - CSDN
精华内容
参与话题
  • 这几周有关OpenID的新闻不断:Google Profile变身OpenID、WordPress上的Google Friend Connect插件实现OpenID留言、OpenID先驱JanRain获得325万美元风险投资、雅虎将全面支持Facebook Connect服务…… 正好前...

    这几周有关OpenID的新闻不断:Google Profile变身OpenID、WordPress上的Google Friend Connect插件实现OpenID留言、OpenID先驱JanRain获得325万美元风险投资雅虎将全面支持Facebook Connect服务…… 正好前段时间看了一些OpenID的资料,希望下面的内容可以帮助大家了解OpenID(参考资料见附录)。

    1.OpenID介绍

    1.1概念

    OpenID 是一个以用户为中心的数字身份识别框架,是一个以URL为身份标识的分散式身份验证解决方案,它具有开放、分散、自由等特性。

    clip_image002

    OpenID 的创建基于这样一个概念:可以通过URL来认证一个网站的唯一身份,同理,也可以让每人通过一个URL(一个OpenID身份就是一个URL),在多个网站上进行登录,作为用户的身份认证。

    形象一点来说:URL是护照,OpenID服务器就是户口所在地。首先在一个OpenID服务器网站注册,获得一个URL,等于申请一个了“出入许可证”。然后可以直接使用这个URL来登录别的网站,也可以把这个URL加到自己的主页,让个人主页的URL具备OpenID URL的功能,就像是一个复印件。然后就可以拿这个URL到支持OpenID的网站去登录了。不需要每个网站都注册一遍,因为你的信息已经保存在OpenID服务器上,并获得那些网站的认可。好比是银行卡可以在银联内的多家银行取钱一样。不用担心自己的用户名被别人抢注,也不用怕忘记那许多用户名和密码。

    谁将拥有或控制的OpenID ?

    OpenID的出现缘于开源社区,其目的是为了解决现有技术所不能轻易解决的问题。OpenID不属于任何人,也不应该属于任何人。任何人都可以选择成为一个OpenID用户或成为一个OpenID的免费提供方,而不需要注册或者被任何组织批准允许。OpenID基金会的成立,目的是为了协助开源社区的管理和发展,以促进和支持OpenID的扩展和应用 。

    1.2基本原理简述

    OpenID系统由三部分角色组成:

    • End User — 终端用户,使用OpenID作为网络通行证的互联网用户;
    • Relying Part(RP) — OpenID支持方,支持End User用OpenID登录自己的网站;
    • OpenID Provider(OP) — OpenID提供方,提供OpenID注册、存储等服务。

    clip_image009 USER —— 使用OpenID

    clip_image010 RP —— 支持OpenID登录

    clip_image012 OP ——  提供OpenID

    使用 OpenID时,URL就是用户名,密码存储在一个 OpenID 服务网站(OP)上。登录RP时需要提交两个重要信息,一个是你的名字,一个是OpenID网站的网址。例如我在OP:open.cn上的账号是:kidult,我的OpenID就是http://kidult.openid.cn/。

    打个比方,你到朋友公司,要经过门卫,门卫需要确认你的身份。这时候,你就是用户,门卫就是网站登录框,朋友就是一个OpenID中介。

    你要进门,告诉门卫:“我要找某某某。”

    门卫打电话问你朋友:“这有个人说是找你的。”

    门卫把电话交给你,你给朋友暗号:“地瓜地瓜,我是土豆。”

    再把电话交给门卫,朋友告诉门卫:“没错,他是我朋友,让他进来吧。”

    事实上, “门卫” 并不需要认识你朋友,只需要通过一种通用的协议与OpenID的网站交换确认信息就行了,“门卫”和OpenID网站之间的信息是建立在tcp/ip基础上的比较可靠的唯一通路上,除非别人知道你的OpenID密码,或者黑客通过某种手段劫持他们之间的通信,或者劫持OpenID网站域名,否则别人不能冒充你的身份。

    clip_image014

    图 1 OpenID原理

    1.3 OpenID优缺点

    优点

    对用户

    1. 简化注册登录流程:一定程度上避免了重复注册、填写身份资料的繁琐过程,不需要注册邮件确认,登录更快捷。
    2. 一处注册,处处通行:免去记忆大量账号的麻烦,一个OpenID就在任何支持OpenID的网站自由登录。

    clip_image015

    3. 减少密码泄露风险:频繁登录各种网站,容易被垃圾网站暗地里收集密码和资料,或者冒充用户身份发送垃圾信息。

    4. 用户拥有账号信息控制权:根据对网站的信任程度,用户可以清楚的控制哪些profile信息可以被共享,例如姓名、地址、电话号码等。

    对网站(RP)

    1. 共享用户资源:给所有支持 OpenID 的网站带来了价值。

    2.已经有相当数量的高端注册用户可以直接使用,不必从零开始;

    3.可以不负担自己建立会员系统或登录功能所需要的开发成本、机器、带宽、安全费用;

    4.用户数据是安全的,用户数据不统一存储,用户可以任意选择、更换存储的server。没有组织,没有任何一个地方可以做root,没有任何一个机构或者个人能够从这里面获利。

    缺点

    1. 任何人都可以建立一个网站提供OpenID验证服务,而网站性能参差不齐,导致OpenID的验证过程不是很稳定。

    2. 如果提供OpenID验证服务的网站突然关闭的话,可能会导致大量用户无法使用多个网站的服务。

    3. 目前几乎所有支持OpenID的网站都很谨慎地将其做为一种可供选择的辅助登录方法,这会在很大程度上阻碍OpenID的发展。

    4. 目前支持OpenID的网站还不多,其独特的使用方法并不被多数用户所熟悉。

    More about OpenID…

    clip_image017

    1.4 OpenID跟Passport的比较

    网络通行证进化历程:

    • 最原始的注册方式,自选字母或是数字等组合作为ID;
    • 到了传说中的web2.0时代,用邮箱作为ID来注册,但是隐患是“不请自来”的邮件;
    • 现在,用OpenID登录,即,不用担心垃圾邮件,省去填定个人资料的过程,节省了注册时间。

    目前互联网上的主流帐号管理方式有两种:

    • 单一帐号系统。只提供单一服务的网站采用的用户帐号管理模式。用户注册后使用此帐号可以在其网上上实现所有功能操作。
    • 通行证。例如google、163、微软等提供多套服务的网站采用的帐号管理程序。用户在注册一次之后,使用该帐号可以在这些网站所属群里面自由使用。

    与目前流行的网站帐号系统(Passport)相比,OpenID具有开放性以及分散式的特点。它不基于某一应用网站的注册程序,而且不限制于单一网站的登录使用。

    2.相关案例

    目前,OpenID联盟包括的知名网站有:Google,IBM,雅虎,微软,Myspace,Facebook等。

    2.1 国外OpenID

    其实很多网站的账号本身就是一个OpenID:

    AOL – OpenID.aol.com/screenname

    Blogger – username.blogger.com

    Bloglines – d.bloglines.com/username

    Flickr – www.flickr.com/photos/username

    LiveDoor – profile.livedoor.com/username

    LiveJournal – username.livejournal.com

    SmugMug – username.smugmug.com

    Technorati – technorati.com/people/technorati/username

    Vox – member.vox.com

    Yahoo – http://OpenID.yahoo.com

    WordPress.com – username.wordpress.com

    Ziki.com

    表 2 一些OpenID提供方比较

    (易用性 安全性 用户信息 多ID管理 反钓鱼 密码保护)

    clip_image023

    via

    Facebook 作为RP支持OpenID

    2009年5月19日,facebook宣布正式启用OpenID登录系统,允许用户使用Gmail或其它支持OpenID的网站帐号登录Facebook。可以用Gmail帐号登录Facebook,也就是说,当你在Gmail里浏览邮件时,点击了一个Facebook的链接,你不需要再输入密码,就能到达你自己的Facebook页面里。

    OpenID是一个非盈利性质的联盟,期望推动用一个帐号/密码来登录所有网站。这可以省掉大量的用户不停注册的时间,以及一堆帐号/密码的麻烦。

    但是很多OpenID的参与者都不像Facebook这么彻底,例如不能用Facebook帐号登录Gmail。为什么Facebook这么做?Facebook说:”我们认为,开放有助于培育出一个强大的开发人员社区。”Facebook在测试中发现,利用OpenID注册Facebook的新用户”更可能”成为Facebook的活跃用户。

    当然,最真实的原因来自:Facebook从一开始就是一个彻底的”开放”态度,它让用户用自己的Email地址作为Facebook的帐号,而从来没有生成Facebook自己的帐号。所以,它采纳OpenID跟自己的历史逻辑一致,没有任何损失。

    2.2 Yahoo ID和Google ID

    Yahoo

    clip_image025

    OpenID技术让你可以用Yahoo!账号登录许多网站。一旦启用您的Yahoo! OpenID的访问帐户,您可以简单地告诉任何支持OpenID的网站,你是Yahoo!用户。

    当您访问的网站支持OpenID登录,您只需找到Yahoo!登录按钮。或者你看到一个OpenID图标,只需在文本框输入“yahoo.com”。登录信息将被发送到Yahoo!验证您的Yahoo! ID和密码,然后登录到该网站。

    例子:用yahoo账号登录plaxo

    clip_image038

    安全措施:Yahoo! sign-in seal (安全图章)

    clip_image040

    一个安全图章是一个只在本机显示的秘密的信息或照片。每次登录都寻找它,以确保您在一个真正的雅虎正在网站。如果消息,照片,或颜色是不同的,你可能在访问一个钓鱼网站。

    Google

    Google期望用户用Gmail的帐号登录其他网站,比如Facebook,但是,它不允许用户用其它Facebook的帐号来登录Gmail。(例外

    Google OpenID解决方案:Federated Login

    基于OpenID标准。第三方网站和应用程序现在可以使用google帐户注册和登录。

    clip_image051

    图 2 Google Federated Login原理

    (谷歌作为Relying Part)

    clip_image058

    为什么谷歌音乐支持人人ID、live ID、Yahoo! ID登录?有兴趣的同学可以看这里

    2.3 国内类OpenID

    国内支持OpenID的Relying Part:Yupoo又拍乐铺,……

    国内OpenID Provider:OpenID.cn,豌豆,……

    更多的是类OpenID 提供方和类OpenID Relying Part

    类OpenID Relying Part:京东商城、土豆、D1、99网上书城、365商城、钻石小鸟,等等。

    类OpenID Provider:支付宝、人人网、QQ等。

    附:如何在我的网站上用支付宝账户登录功能?(via)

    答: 1、确认您签约的合同中是否有该项服务,我们称之为“免注册登陆”、“信任登陆”等。

    2、若有该项服务,且已开通该项权限功能,请从客户经理那获得,免注册登陆的接口资料。若没有,则请联系客户经理 或拨打商户客服电话0571-88158090

    3、根据接口资料与接口代码DEMO,类似接入支付宝支付接口的方式,接入这个接口到商户网站中,并与商户网站里的会员数据库衔接。

    具体实现步骤可参考:http://dev.alipay.com/devclub/mvnforum/viewthread_thread,398

    流程 :

    1、 用户在访问您的网站时,在您的登陆框里,点击功能按钮“支付宝会员登陆”

    2、 通过您做好的接口与支付宝的网关,页面跳转到支付宝专门为会员免注册登陆设计的登陆页面

    3、 用户填写登陆帐号密码登陆进去以后,支付宝会把这个用户的相关信息发送回本网站,同时页面跳回到本网站已设置好路径的返回页,本网站通过该返回页执行程序实现用户在本网站的自动登陆(此登陆并非登陆到支付宝网站上,而是登陆到本网站里)。

    2.4 小结

    封闭性质的OpenID——形似而非神似

    OpenID:双向开放

    • 类OpenID:单向有选择性的开放,提供接口,通过合作或开放给用户自行添加
    • 真正的OpenID支持网站(OI):影响力太弱
    • 类OpenID Provider(OP):重量级公司,用户量庞大且较为优质,活跃度高。都不是真正的开放,自身产品不支持OpenID登录。
    • 类OpenID Relying Part(OR):实力较强,多是服务型网站,以电子商务网站为多,跟几大OP有深入的良好合作关系(互补的性质 > 竞争性质),看重的是强强联合,打通用户资源。

    [1]. OpenID Wikipedia, http://en.wikipedia.org/wiki/OpenID

     

    [2]. Six Apart – Labs: OpenID, http://www.sixapart.com/labs/OpenID/

    [3]. OpenID Explained , http://OpenIDexplained.com/

    [4]. OpenID百度百科, http://baike.baidu.com/view/832917.html?wtp=tt

    [5]. OpenID使用手册, http://www.matrix.org.cn/resource/article/2007-09-20/187c9604-671e-11dc-91f8-0da64dffe568.html

    [6]. Towards an OpenID-based solution to the Social Network Interoperability problem,Position paper for the W3C Workshop on the Futureof Social Networking

    [7]. Slideshare.net Results 1-12 of 1160 for ” OpenID”  http://www.slideshare.net/search/slideshow?q=+OpenID&submit=post&searchfrom=header

    [8]. 什么是OpenID , David, March 23, 2008, http://blog.iyi.cn/start/2008/03/OpenID.html

    [9]. 什么是OpenID , OpenID的工作原理简述, OpenID的两种模式, http://vovo.net.cn/go/OpenID

    [10]. OpenID初体验, 2008-09-10, http://www.tiray.net/post/OpenID-experience.aspx

    [11]. OpenID,新的用户登录体验, http://www.adxonist.com/archives/32

    [12]. OpenID的用户体验 (一), http://www.adxonist.com/archives/34

    [13]. OpenID的用户体验 (二), http://www.adxonist.com/archives/39

    [14]. OpenID的用户体验 (三), http://www.adxonist.com/archives/54

    [15]. OpenID系列(一):注册篇, http://www.kuqin.com/shuoit/20080411/6538.html

    [16]. OpenID系列(二):使用自己的URL, http://www.kuqin.com/shuoit/20080411/6539.html

    [17]. 国外各大OI、OP、RP网站

    [18]. 国内各大OP、RP网站

    展开全文
  • 小程序的openid

    千次阅读 2019-03-26 08:52:59
    小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等!你可以理解为小程序的账号,小程序是获取不到你的微信号的,这个属于私密信息!只能获取用户的昵称,头像,openid,session_key等 下面就...

    小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等!你可以理解为小程序的账号,小程序是获取不到你的微信号的,这个属于私密信息!只能获取用户的昵称,头像,openid,session_key等

    下面就讲解一下我获取openid

    首先,获取openid,需要具备,AppID(小程序ID),AppSecret(小程序密钥) ,还有登录成功后返回给你的js_code

    废话不多说,先看代码

     wx.login({
            success: res => {
              console.log(res.code)//登录成功后获取js_code
              wx.request({
                url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + app.globalData.appid + '&secret=' + app.globalData.secret + '&js_code=' + res.code + '&grant_type=authorization_code',//获取openid的url,请求微信服务器
                data: {},
                header: {
                  'content-type': 'application/json'
                },
                success: function(res) {
                  console.log("Openid为" + res.data.openid)
                  console.log("返回秘钥:" + res.data.session_key)//返回秘钥
                  app.globalData.openid = res.data.openid; //返回openid
                  //app.globalData.test="hello"
                  app.globalData.userInfo = e.detail.userInfo;
                  //授权成功后,跳转进入小程序首页
                  wx.redirectTo({
                    url: '../index/index'
                  })
                }
              })
            }
          });
    

    app.globalData.appid,app.globalData.secret这是我获取app.js全局变量的值

    App({
      globalData: {
        appid: 'wsfsfsfsf49c',//appid需自己提供,此处的appid我随机编写
        secret: 'ffb6sfsfsfsfsfsc',//secret需自己提供,此处的secret我随机编写
        openid: 0,
        code:0,
        userInfo: null,
        test:"你好"
      },
      )}
    
    展开全文
  • 微信公众号获取openid

    2020-07-29 14:18:29
    两种方式获取微信用户openid,有图文介绍,代码是全的,可以直接拿来用
  • 什么是openid?

    千次阅读 2019-06-10 22:14:49
  • 1:微信小程序为什么会有OpenID,其实在微信小程序里面OpenID,就代表着我们一个人,拥有一个身份证一样的东西,在我们不知道某个人的情况下,可通过OpenID来进行查询某个用户,当然OpenID不是我们自己生成的,而是前...

    看图

    问:

    1:小程序里面为什么要使用OpenID,有什么意义?

    2:小程序既然有了OpenID,为何还要unionID?

    答:请参考以下做法,如有不对地方请指出

    1:微信小程序为什么会有OpenID,其实在微信小程序里面OpenID,就代表着我们一个人,拥有一个身份证一样的东西,在我们不知道某个人的情况下,可通过OpenID来进行查询某个用户,当然OpenID不是我们自己生成的,而是前端通过微信提供的API wx.login({})得到一个code,再拿这个code去调用我们自己后台的接口,后台再获得到这个code再去调用微信的方法,获取到sessionKey,OpenID,就是这么简单。

    2:小程序里面unionID的作用,其实unionID和OpenID在本质上是没有任何区别的,但是如果一个在同一个公众号下面使用多个小程序(注意必须是在同一主体公众号下面绑定的小程序)的时候,这时候OpenID将会是不一样的,此时此刻将会用到unionID,因为unionID只要是在同一主体下面,unionID这个值永远是一样的,可以用来判断是否为同一个人,当然如何获取unionID,获取unionID的方式和OpenID的方式是不一样的请看以下步骤:1、用户授权之后调用wx.getUserInfo({}),

    2:获取unionId,调用wx.getUserInfo方法之后,获取到encryptedData、iv、rawData、signature这几个值,传给后台进行解码获取到unionId,获取unionId的步骤就是这么简单!

     

    展开全文
  • 微信每次的访问 请求 首先经过授权 拿到code换取openidopenid存入cookie 这以后的所有访问url 全部都从cookie中获取openid 如果没有在获取code换取 可以解决的问题: 1,如何存储获取用户信息及调用第三方...
  • 微信h5静默、非静默授权获取用户openId的方法和步骤: 一、openId是什么? openId是用户在当前公众号下的唯一标识(‘身份证’),就是说通过这个openId,就能区分在这个公众号下具体是哪个用户。 二、openId有...
  • 如何获取用户的openid

    千次阅读 2017-12-20 15:35:58
    如何获取用户的openid你是否还在烦恼通过微信API接口获得openid的步骤烦恼?哈哈,今日突然发现一个特别方便的小窍门,不费吹灰之力找到用户的openid,详情如下: - (1)首先登陆微信公众号后台(确保你有登陆微信...
  • 理解OpenID和OAuth的区别

    万次阅读 2018-03-30 11:17:22
    在项目开发中,我们经常说授权认证,经常把他们放到一起去描述,那两者在本质上是有区别的,OpenID和OAuth就是我们说的认证和授权。OpenID:Authentication 认证OAuth :Authorization 授权 如今越来越多的网站,...
  • OpenID

    千次阅读 2015-04-16 09:24:20
    OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。由于URI 是整个网络世界的核心,它为基于URI的用户身份...
  • 最近,对微信公众号有点兴趣,就自己研究了研究里面的一些内容,发现还挺有意思的,而且通过微信公众号可以调用一些比较有意思的接口,就比如百度开发服务平台点击进入里面的很有接口,就比较常见的翻译,语音识别,...
  • 简单的实现微信获取openid

    万次阅读 多人点赞 2019-06-13 14:01:35
    微信公众平台获取openid在公众号的开发中有很多用途,前段时间为实现用户使用公众号在登录一次以后可以免密登陆而使用了openid。开发过程中遇到了一些问题,在这里向需要且还没有获取到openid的米娜桑分享一下简单的...
  • 微信小程序获取用户openid

    万次阅读 多人点赞 2018-03-26 17:12:53
    1、wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。2、code 换取 ...
  • OpenId

    2020-01-08 17:54:51
    OpenID 用户希望访问其在example.com的账户 example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID 用户给出了他的OpenID,比如说”http://user.myopenid.com” example.com ...
  • 微信小程序授权获取用户详细信息openid

    万次阅读 多人点赞 2018-08-07 15:21:45
    小程序获取用户的头像昵称openid之类 第一种使用wx.getUserInfo直接获取微信头像,昵称 wx.getUserInfo({ success: function (res) { that.setData({ nickName: res.userInfo.nickName, avatarUrl: ...
  • 微信公众号开发系列-获取微信OpenID

    万次阅读 多人点赞 2015-05-21 22:51:30
    在微信开发时候在做消息接口交互的时候需要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID,接收事件推送方式和网页授权获取用户基本信息方式获取。
  • Springecurity2.0.4+OpenID完整配置攻略

    千次阅读 2014-03-07 22:49:51
    本文介绍Spring Security2.0.4+OpenID的完整配置攻略。
  • 我已经有50对用户名/密码了。我根本记不住它们。再多一对又何妨?……如果你是一位软件开发者、你在做一个需要用户登录的应用程序,请考虑采用OpenID,...在眼下,我看到的唯一有希望的只有OpenID(尽管它饱受非议)。
  • 微信公众平台 获取用户openid

    万次阅读 2019-02-26 16:30:54
    今天做微信公众号获取用户的openid,圆满成功,特此来一发。   第一步:理解逻辑。   1:获取openid的逻辑 获得微信的openid,需要先访问微信提供的一个网址:这个网址名为url1,下面有赋值。 通过这个网址,...
  • OpenID简介

    万次阅读 2009-03-22 13:27:00
    也许大家都有这样的经历与烦恼:当你为了使用某个网站的服务时(若你还没在该网站上注册过),你不得不先注册一个帐号。当你在一堆的网站上注册帐号后...OpenID正式基于解决这类问题而提出的一个国际标准,用于打通各大
1 2 3 4 5 ... 20
收藏数 45,285
精华内容 18,114
关键字:

openid