Oauth2刷新令牌 流程

//Oauth2刷新令牌 流程

//开启刷新令牌  从下面这句开始进入流程


myTokenServices.refreshAccessToken(existToken.getRefreshToken().getValue(),tokenRequest);

//refresh:ee23fc70-ada8-4e0d-b399-9b399c4849e5  从redis拿到key对应的刷新令牌对象
OAuth2RefreshToken refreshToken = this.tokenStore.readRefreshToken(refreshTokenValue);

//"refresh_auth:"+刷新令牌  拿到包含客户端信息和用户信息的OAuth2Authentication认证对象
OAuth2Authentication authentication = this.tokenStore.readAuthenticationForRefreshToken(refreshToken);


//这里红色user是从redis里面authentication.getUserAuthentication()得到的  将和从数据库提取的user做对比 不通过返回null
Authentication user = this.authenticationManager.authenticate(user);


Object details = authentication.getDetails();
//绿色user是新的user 从数据库中新提取的   重新生成包含客户端信息和用户信息的OAuth2Authentication认证对象authentication
authentication = new OAuth2Authentication(authentication.getOAuth2Request(), user);
//重新生成包含客户端信息和用户信息的OAuth2Authentication认证对象authentication
authentication.setDetails(details);

//从redis删除旧的访问令牌

OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(accessToken);
            if(oAuth2AccessToken != null){
                log.info("----access_token是:"+oAuth2AccessToken.getValue());
                tokenStore.removeAccessToken(oAuth2AccessToken);
              }

//根据refreshToken生成新的访问令牌

//这里authentication是OAuth2Authentication 包含客户端信息和用户信息的OAuth2Authentication认证对象

OAuth2AccessToken accessToken = tokenStore.createAccessToken(authentication, refreshToken);

其他文章

// 用户不同客户端登陆  账号只会在一个客户端生效

Oauth2 互斥令牌  用户再次登陆后生成新accessToken 旧的作废 

//  accessToken访问令牌 续期  用户每进行一次业务操作,访问令牌过期时间往后延续20分钟

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OAuth2认证流程包括以下几个步骤: 1. 用户向客户端提供授权:用户通过向客户端提供用户名和密码等凭证,请求获取访问资源的权限。 2. 客户端请求授权:客户端将用户提供的凭证发送给认证服务器,请求获取访问资源的授权。 3. 用户授权:认证服务器验证用户的凭证,如果验证通过,则要求用户授权客户端访问其资源。 4. 认证服务器发放授权码:如果用户同意授权,认证服务器会发放一个授权码给客户端。 5. 客户端请求访问令牌:客户端将授权码发送给认证服务器,请求获取访问令牌。 6. 认证服务器发放访问令牌:认证服务器验证授权码的有效性,如果验证通过,则发放一个访问令牌给客户端。 7. 客户端请求资源:客户端使用访问令牌向资源服务器请求访问受保护的资源。 8. 资源服务器验证访问令牌:资源服务器验证访问令牌的有效性,如果验证通过,则向客户端返回请求的资源。 这就是OAuth2认证流程的基本步骤。在实际应用中,通常还涉及到刷新令牌、撤销令牌等操作,以提高安全性和用户体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [OAuth2认证流程](https://blog.csdn.net/Relievedz/article/details/129583088)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值