Oauth2.0
spring security 估计很多人都在用,里面有几种安全模式值得大家去摸索.
oauth2.0 是一种授权鉴权的机制,主要是用来颁发令牌,验证令牌,刷新令牌.
OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0).
2012年10月,OAuth 2.0协议正式发布为RFC 6749
授权方式-授权码(authorization code)
介绍
授权码可以简单理解为3方授权,就是A需要访问B,需要在C上授权.
比如你登录CSDN,想通过微信(wechat)授权的方式.
- CSDN -->跳转到微信,微信提示你是否要授权CSDN访问你的信息
- 你确认授权
- 微信-->跳转回 CSDN,并携带授权码
- CSDN --> 微信根据授权码获取token,再根据token获取到用户信息.
- CSDN转换自己的token,并允许你继续访问CSDN.
GET: http://server.demo.com/oauth/authorize?client_
id=client_
id&response_
type=code&scope=code&redirect
_
uri=https://callback_
url
simple:
http://localhost:8083/oauth/authorize?client_id=api-gateway&response_type=code&scope=openid&redirect_uri=https://baidu.com
response: https://www.baidu.com/?code=SuBVo2
参数解释
client_id: 在第三方应用上申请的客户端id,身份认证
response_type: 标识授权类型,此处固定code
scope:访问资源的权限范围
redirect_uri: callback url,会携带code码, *https://callback_*url?code=sderdsf
根据code换取access_token:
参数解释
client_id: 在第三方应用上申请的客户端id,身份认证
client_secret: 秘钥
grant_type: 标识授权类型,此处固定authorization_code
scope:访问资源的权限范围
code: 前一步获取到的code码
redirect_uri: callback url, 会再次验证是否一致