OAuth2.0协议

什么是OAuth
OAuth的应用场景
工作原理
  • 三个重要步骤
  • 第三方登录
  • 获取Request Token
  • 获取Access Token
  • 后续API访问
  • Refresh Token刷新Access Token
总结
OAuth协议简介
  • OAuth is short for Open Authorization
  • OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的账号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此,OAUTH是安全的。
协议版本
  • OAuth1.0版本发布于2007年,存在漏洞。
  • OAuth2.0版本发布于2010年,解决漏洞。
OAuth应用场景
  • QQ用户授权慕课网使用其QQ账号相关的信息。
  • 获取授权后,在符合权限规则的情况下访问各种API。
三个重要步骤解析

步骤一 请求OAuth登录页
  • Request Token URL - 未授权的令牌请求服务地址
  • 慕课网请求QQ登录页面时使用的带有特定参数的URL
https://graph.qq.com/oauth/.....?.....
&client_id=100490398&.....
&redirect_uri=http://www.mukewang.com/.....
步骤二 用户使用QQ号登录并授权
https://graph.qq.com/oauth/.....?.....
&client_id=100490398&.....
&redirect_uri=http://www.mukewang.com/.....
http://www.mukewang.com/user/qqcallback?
code=xxxxxxxxx....
$_GET['code']
步骤三 返回登录结果
https://graph.qq.com/oauth/.....?.....
&client_id=100490398&.....
&redirect_secret=xxxxxxxxxx&.....
&code=xxxxxxxxxx....
  • code是个有生命周期且只可使用一次的字符串
AccessToken - 用户通过第三方应用访问OAuth接口的令牌
  • 通过慕课网把自己喜欢的课程分享到QQ空间
AccessToken与RefreshToken
  • Token令牌

  • AccessToken-具有较长生命周期(10天半个月甚至更长)
User Authorization URL中指定参数......&need_refresh_token=true&......
原文地址:https://www.cnblogs.com/sanjun/p/10011397.html