当前位置: 代码迷 >> 综合 >> OAuth2.0 个人理解
  详细解决方案

OAuth2.0 个人理解

热度:108   发布时间:2023-11-25 08:28:49.0

OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程

 

OAuth2.0它只是一个提供认证流程的标准方案, 它的请求路径和参数都是统一的标准。

认证流程图如下:

 

1 )资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会
附加客户端的身份信息。如:
/uaa/oauth/authorize?client_id=c1&response_type=code&scope=all&redirect_uri=http://www.baidu.com
参数列表如下:
client_id :客户端准入标识。
response_type :授权码模式固定为 code
scope :客户端权限。
redirect_uri :跳转 uri ,当授权码申请成功后会跳转到此地址,并在后边带上 code 参数(授权码)。
2 )浏览器出现向授权服务器授权页面,之后将用户同意授权。
3 )授权服务器将授权码( AuthorizationCode )转经浏览器发送给 client( 通过 redirect_uri)
4 )客户端拿着授权码向授权服务器索要访问 access_token ,请求如下:
/uaa/oauth/token?
client_id=c1&client_secret=secret&grant_type=authorization_code&code=5PgfcD&redirect_uri=http://w
ww.baidu.com
参数列表如下
client_id :客户端准入标识。
client_secret :客户端秘钥。
grant_type :授权类型,填写 authorization_code ,表示授权码模式
code :授权码,就是刚刚获取的授权码,注意:授权码只使用一次就无效了,需要重新申请。
redirect_uri :申请授权码时的跳转 url ,一定和申请授权码时用的 redirect_uri 一致。
5 )授权服务器返回令牌 (access_token)
这种模式是四种模式中最安全的一种模式。一般用于 client Web 服务器端应用或第三方的原生 App 调用资源服务
的时候。因为在这种模式中 access_token 不会经过浏览器或移动端的 App ,而是直接从服务端去交换,这样就最大
限度的减小了令牌泄漏的风险。
(6)验证 token 有效性路径 ../oauth/check_token
  相关解决方案