OpenID和OAuth的区别

作者:钱小钱
链接:http://www.zhihu.com/question/19628327/answer/23291315
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

OAuth学习笔记OpenID学习笔记都说了可以用来认证身份,但是他们之间到底有哪些不同,哪些情况应该用OAuth,哪些情况应该用OpenID呢?下面就一起来看下他们之间的区别。


简短的说,OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:

  • authorization: n. 授权,认可;批准,委任
  • authentication: n. 证明;鉴定;证实

OAuth关注的是授权,即:“用户能做什么”;而OpenID关注的是证明,即:“用户是谁”。下面就分别来说两者的功能。


OpenID

  1. 用户希望访问其在http://example.com的账户
  2. http://example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
  3. 用户给出了他的OpenID,比如说”user.myopenid.com
  4. http://example.com 跳转到了用户的OpenID提供商“mypopenid.com”
  5. 用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登录
  6. “myopenid.com” (OpenID provider) 问用户是否要登录到http://example.com
  7. 用户同意后,”myopenid.com” (OpenID provider) 跳转回http://example.com
  8. http://example.com 允许用户访问其帐号

OAuth

  1. 用户在使用http://example.com时希望从mycontacts.com导入他的联系人
  2. http://example.com (在OAuth的黑话里面叫“Consumer”)把用户送往mycontacts.com (黑话是“Service Provider”)
  3. 用户在mycontacts.com 登录(可能也可能不用了他的OpenID)
  4. mycontacts.com问用户是不是希望授权http://example.com访问他在mycontact.com的联系人
  5. 用户确定
  6. mycontacts.com 把用户送回http://example.com
  7. http://example.com 从mycontacts.com拿到联系人
  8. http://example.com 告诉用户导入成功

OpenID是用来验证的,就是说可以用一个url来唯一表明身份(不用挨个记每个网站的用户密码)。OAuth是用来授权的(俺可以授权一个网站访问俺在另外一个网站的数据,而俺不用把俺的密码给第一个网站。

很多人现在错误的把OAuth当做OpenID使用。但是其实也不会照成什么影响。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值