首页 > 编程语言 > 详细

Spring Security OAuth2 之token 和 refresh token

时间:2020-05-11 23:19:15      阅读:249      评论:0      收藏:0      [点我收藏+]

本文梳理oauth2登录,刷新,注销对内存中token和refresh token的操作,同时提供客户端使用token的方案。

 

一、Spring Security OAuth2提供操作token的接口:

 

接口
grant_type参数 说明
类DefaultTokenServices
/oauth/token password 登录获取token
方法createAccessToken
/oauth/token refresh_token 刷新token
方法refreshAccessToken
/auth/revokeToken自定义   自定义注销
方法revokeToken

 

继续参考下一个表对DefaultTokenServices详细说明

 

二、类DefaultTokenServices

 

本质上是DefaultTokenServices类对token和refresh token的操作,所以梳理这个类就可以。

 

针对一个client and username

 

方法

规则

等录createAccessToken方法

    1. 如果存在token,则更新用户信息,复用原来token/refresh token,时间继续计算,直接返回token(这里客户端无法判断refresh token过期时间)

    2. 如果存在token,刚好过期,则重新生成token, 复用原来refresh token, 所有时间重新计算;

    3. 如果不存在token,则新生成token/refresh token , 时间也是新的;

刷新refreshAccessToken方法

      1. 如果不存在或者过期refresh token,抛出异常/客户端返回403;

      2. 如果存在refresh token, 删除所有旧的相关token, 生成新的token(新时间)

      3. 判断是否复用refresh token, 复用则不重新生成refresh token; 不复用, 则新生成refresh_token, 时间也刷新

 

注销revokeToken方法

    1. 查询token存在时候, 删除token/refresh token;

    2. 查询token不存在时候, 不进行操作;

 

注意:在公众号回复关键字:token 

可以获取更多资料

技术分享图片

 

三、客户端使用token步骤

 

业务方服务端使用token方案:(token设置有效期30天,refresh token有效期大于30天/如果永久有效有风险)

 

以下是处理token步骤:

 

1. 登录获取token和refresh token

{    

"access_token": "5427cac5-9e00-4e01-8cec-b4d36ca7d5fa",


"token_type": "bearer",


"refresh_token": "c169fcc7-4f75-497d-8f6b-4862f5a36d18",


"expires_in": 5,


"scope": "write api"

}

 

2. 在token有效期内, 用refresh token刷新token获取新token

{    

"access_token": "66cd5f7c-9b38-4261-9871-595f9748f6b6",

"token_type": "bearer",


"refresh_token": "c169fcc7-4f75-497d-8f6b-4862f5a36d18",


"expires_in": 9,


"scope": "write api"

}

3. 如果refresh token 刷新token时候403, 则进行第1步登录获取token和refresh token

 

 http status 403 Forbidden

{

"code": 400,


"message": "Invalid refresh token: c169fcc7-4f75-497d-8f6b-4862f5a36d19",


"data": null

}

 

Spring Security OAuth2 之token 和 refresh token

原文:https://www.cnblogs.com/huangchanghuan/p/12872774.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!