Oauth2.0的refresh token获取新的access_token后如何处理

发布于 2022-09-11 16:50:02 字数 1122 浏览 13 评论 0

在请求接口的时候在header中携带了access_tokenrefresh_token

如果access_token过期了会根据refresh_token获取新的 access_token , 之后更新 refresh_token的过期时间!

但是有个疑问哈 ! 在获取了新的access_token 后如何让写入到客户端呢?

比如场景

用户在登录了一段时间后(access_token 已经过期),去请求了订单列表!
但是在请求订单列表的时候 由于 access_token 已经过期! 所以要根据 refresh_token 去获取新的令牌!
我们是阻断订单列表的请求让其去获取新的 access_token 之后返回特定状态码! 客户端根据判断状态码 根据约定好的状态码判断是否写入 access_token ?
这样的话请求订单列表的请求已经没了 咋处理呢?

感觉说的好乱 有大神解答下吗? (有打赏)!

目前有一个思路

在请求的时候,判断token是否过期,如果没有过期,继续请求;
如果有过期就检测 refresh_token 是否过期 如果也过期了就让用户重新登录!
如果token 过期 但是 refresh_token 没有过期 就在中间件设置新的Token 更新refresh_token 的过期时间 ;请求继续 并且再返回的json中增加token字段!

{
  "status": 1,
  "msg": "获取订单列表成功",
  "data":[
    //业务数据
    ],
  "token" :"xxxxxxxxxxxxx"    //新的token

在客户端 响应拦截器 中 判断返回对象中如果有 token 字段 就将 旧的token替换!

不知这种是否可行呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

抠脚大汉 2022-09-18 16:50:02

没人这么处理的。业务接口和token接口不放一起
1.验证token无效的,返回错误码?客户端要根据这个错误码进行token的刷新或者重新登录
2.之后再去继续请求正常的业务接口

独﹏钓一江月 2022-09-18 16:50:02

access_token是否过期 和用refresh_token刷新access_token 一般都是客户端做啊 客户端刷新后存储

酒绊 2022-09-18 16:50:02

通过响应拦截器可以做的。当判断到类似于未登录这种情况,刷新完token之后吧当前请求重试即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文