看了下oauth2相关的东西,了解了下流程,简单总结一下,源码没看,感觉很麻烦。2023年8月8日11:29:38
一、是什么鬼东西?
基于令牌的认证授权框架、协议。
OAuth是一个开放标准,也就是一个授权框架,使应用程序能够访问其它公司提供的资源,允许用户在第三方应用访问存储在其他服务器上的私密资源,而在整个过程不需要提供用户名和密码给到第三方应用,可以通过提供一个令牌(token)实现该功能,采用令牌的方式可以让用户灵活的对第三方应用授权或收回权限。
二、角色
- 用户
- 客户端
- 授权服务
- 资源服务
三、模式
1.授权码模式
最标准常用的模式!
- 获取授权码(需要用户授权,授权码由授权服务提供)
- 用授权码去授权服务换取access_token、refresh_token
- refresh_token刷新 access_token(可选)
- 用access_token去访问资源(这里需要去校验access_token有效性是谁负责校验的?)
问题:为什么要多一个授权码的步骤?
2.简化模式
少了授权码的步骤,不安全??
3.密码模式
直接用用户名密码换授权?有病吗?哈哈哈
4.客户端模式
直接不需要授权
实战?
1.集成spring的oauth2和spring security
2.或者自己开发一套?感觉好像也不是很复杂,一个授权码接口,一个获取token接口,一个刷新token接口,完事了?
问题
- oauth2和jwt的token有什么区别?
- 为什么要搞个授权码?
- 看看spring实现的源码?
- 对接一下微信的授权试试?
参考:
https://blog.youkuaiyun.com/Huang_Ds/article/details/125533523
https://gitee.com/wang-bata/springboot-oauth2-server.git
公众号H5页面接入微信登录流程: 手机公众号页面接入微信授权功能,获取用户openid,头像,昵称 (gitee.com)