开发者社区> chars-d> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

OAuth2.0协议

简介:
+关注继续查看

简介

   OAuth(Open Authorization),协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名和密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户的授权,因此,OAuth是安全的。

   这些解释其实都是可以在网上搜索到的。为了解释的更加清楚,接下来博主结合实例绘图解释:

  

  整个OAuth授权过程中,三者都获得了自己的便利。

用户可以不用注册帐号,可以直接使用关联帐号就可登录新的网站使用资源,且不用担心帐号失窃,因为这个授权过程是安全的。

慕课网可以更加轻易的获取用户量。

腾讯将海量的数据开放给第三方网站,既是为其他小企业做的贡献,也增大了自身的知名度。

 

版本

  OAuth1.0发布于2007年末,存在严重安全漏洞。

  OAuth2.0发布于2010年初,解决上一版本的安全漏洞,现被各大网站公司一直使用。

 

应用场景

  1)QQ用户授权慕课网使用其QQ帐号相关信息。

  2)获取授权后,在符合权限规则的情况下访问各种API。

  3)淘宝帐号,可在支付宝,阿里云中使用。

总的来说,OAuth是某一独立系统,开放其用户资源给另一系统使用的协议。

 

实现过程(三个步骤)

  

步骤一:请求OAuth登录页面

  Request Token URL,未授权的令牌请求服务地址。

  慕课网请求QQ登录页面时使用的带有特定参数的URL。

  例如,

  https://graph.qq.com/oauth/...?...

  &client_id=100490398&...

  &redirect_uri=http://www.mukewang.com/...

  第一行为QQ登录OAuth页面的地址。

  第二行为一个唯一的站点ID,必须和预置服务器上的一致。

  第三行为一个回调地址,必须和预置服务器上的一致。

步骤二:用户使用QQ号登录并授权

  https://graph.qq.com/oauth/...?...

  &client_id=100490398&...

  &redirect_uri=http://www.mukewang.com/...

跳转到

  http://www.mukewang.com/user/qqcallback?code=xxxxx....

慕课网服务器使用

  $_GET['code'];

获取加密字符。

步骤三:返回登录结果

  User Authorization URL,用户授权的令牌请求服务地址

  为保证安全,确保code是合法服务器获得,没有被劫持,则需要合法接收服务器再发送一个请求(User Authorization URL)。

例如,用户QQ登录授权之后需要请求一个带有特定参数的URL。

  https://xxx.qq.com/oauth/...?...

  &client_id=100490398&...

  &client_secret=xxxxxx&...

  &code=xxxxx......

  code在短期内会过期且只可使用一次,通常是10秒左右。基于安全考虑。

 

关于AccessToken

  AccessToken,用户通过第三方应用访问OAuth接口的令牌,具有较长生命周期(10天半个月甚至更长)。如果AccessToken过期,可以重新登录授权,或在User Authorization URL中指定参数(刷新AccessToken的参数,各平台各有不同)"......&need_refresh_token=true&......"。

  获取AccessToken就可以访问授权帐号的资源,例如,通过慕课网把自己喜欢的课程分享到QQ空间。

 

AccessToken与RefreshToken

  RefreshToken也是有生命周期的,不过比AccessToken生命周期要长,各大平台不一样。

  

使用实例类比AccessToken

  

将返回的XML或JSON解析成我们想要的数据

  

  以上是对OAuth2.0的学习与总结。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
帮你深入理解OAuth2.0协议
1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。
621 0
OAuth2.0协议
1、OAuth2.0概述 OAuth(开放授权)是一个开放标准,引用 RFC6479规范,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
1001 0
OAuth 2.0 协议学习笔记
OAuth 2.0 协议学习笔记
0 0
SAML和OAuth2这两种SSO协议的区别
SAML和OAuth2这两种SSO协议的区别
0 0
oauth授权协议的原理
http://oauth.net/2/ 协议的原文。原来是1.0版本,现在是2.0版本了  https://ruby-china.org/topics/15396https://blog.yorkxin.org/posts/2013/09/30/oauth2-1-introduction/ 通俗解释: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html   要解决的问题:     获取授权。
1925 0
OAuth2.0 协议入门指南
本文希望以应用场景的角度出发,帮助大家快随了解OAuth协议流程,更为清楚明白的介绍在各种情况使用什么授权模式更为合适。OAuth2 官网原文地址 本系列相关文章:OpenID Connect 协议入门指南SAML2.0入门指南 1. 协议中各种角色:应用、API和用户 第三方应用:客户端 客户端,即尝试去获得用户账号信息的应用,用户需要先对此操作授权。
1374 0
第 88 天:OAuth2.0 客户端实战
第 88 天:OAuth2.0 客户端实战
0 0
Why Oauth2.0?
本文仅作为Oauth2使用参考,如果本身已经接触过Oauth2.0,希望本篇文档能帮你打开一些思路,能够让你清晰的选择是否要使用Oauth2.0 如果没有了解过Oauth2.0,请跳转阮一峰Oauth2.0讲解
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载