SecurityOauth2-openId

简介: SecurityOauth2-openId

请求路径:

http://127.0.0.1:8080/oauth/token?grant_type=openId&client_id=rgfMqhmW25rxtT7k&client_secret=df447dd42d2dd322fc308f6ee55c2e3c0f6ed5ca&name=徐国兴&mobile=17540558408&certno=320219195204083011

探究

步骤

  1. 1.authenticate

  2. 2.通过client_id 获取表中的client详细信息

  3. 3.将查回来的client信息以用户名为client_id 密码为密钥的形式放入User对象中



  4. 4.校验密钥传过来的和数据库中的是否匹配

  5. 5.开始执行 createSuccessAuthentication(principalToReturn, authentication, user);

  6. 6.开始交给认证提供者 进行认证

  7. 7.拦截

  8. 8.BasicAuthenticationFilter拦截Header有没有Authorization没有直接放行

  9. 9.到了我们自定义的jwt拦截器(该拦截器的位置是UsernamePasswordAuthFilter 前边)

  10. 10.到了我们的/oauth/token

  11. 11.调用postAccessToken

  12. 12.创建tokenRequest


  1. 13.开始生成token


  1. 14.grant方法


  1. 15.delegate.grant()方法(遍历每一种支持的方式,如果不是我们传的方式就会直接返回null)



  2. 16.我们自定义的类继承了 AbstractTokenGranter实现了里边的getOAuth2Authentication方法



  1. 开始调用上上图的认证




  2. 我们自己定义的UserDetailsService中的loadUserByUsername方法



  3. 生成jwt
相关文章
|
小程序 API
uniapp获取openid
uniapp获取openid
350 0
|
小程序 JavaScript
小程序云开发获取openid及出现openid是undefind的坑
小程序云开发获取openid及出现openid是undefind的坑
151 0
|
1月前
|
JSON 小程序 应用服务中间件
微信的openid是用户的唯一id吗?
【10月更文挑战第4天】微信的openid是用户的唯一id吗?
448 5
|
5月前
|
存储 中间件 数据安全/隐私保护
中间件中OAuth 2.0 和 OpenID Connect
【6月更文挑战第4天】
248 5
如何获取openid
如何获取openid
146 0
|
存储 JSON 算法
「应用安全」OAuth和OpenID Connect的全面比较(上)
「应用安全」OAuth和OpenID Connect的全面比较
|
存储 JSON 安全
「应用安全」OAuth和OpenID Connect的全面比较(下)
「应用安全」OAuth和OpenID Connect的全面比较
|
小程序 前端开发 API
解决微信开发平台中多个应用间用户openid不一致问题 -- unionid
解决微信开发平台中多个应用间用户openid不一致问题 -- unionid
780 0
|
数据安全/隐私保护
|
前端开发 数据库 开发者
根据 token 获取用户信息(接口) | 学习笔记
快速学习根据 token 获取用户信息(接口)