首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用刷新令牌在访问令牌到期前刷新访问令牌

使用刷新令牌在访问令牌到期前刷新访问令牌
EN

Stack Overflow用户
提问于 2021-09-22 15:14:10
回答 1查看 1.4K关注 0票数 3

我正在开发一个应用程序,它使用基于OAuth令牌的身份验证。

考虑到我们有访问和刷新令牌,这就是流的样子。

  1. Api call ->拦截器追加访问-令牌-> api返回200
  2. Api call ->拦截器追加过期访问令牌令牌-> api返回401 ->拦截器刷新令牌使用刷新令牌->拦截器重试相同的req ->返回200

->调用->拦截器追加过期访问令牌令牌-> api返回使用刷新令牌(刷新令牌也过期)的401

  1. 拦截器刷新令牌(刷新令牌也过期了) ->提示来宾签名-在->重试请求in 20

这一切都很好,很好--我正在考虑对其进行一些优化,也就是说,我不想调用api,等待401返回。相反,预先检查令牌是否过期,获取新的访问令牌,然后使用有效令牌调用api。

这种使用android系统时间计算令牌到期时间的方法可能有效--但有时在用户更改android时间时可能会被误用。

想知道是否有更好的解决方案,以避免基于android系统时间的过期问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-23 07:52:18

即使在代码中添加了这样的检查,您仍然需要在问题中显示的流(因此捕获401 s并相应地刷新令牌)。这是因为,正如您注意到的,客户端设备上的时间设置可以更改,或者客户端和服务器之间可能有轻微的时钟偏差(因此没有故意篡改时间设置)。

只有当您访问访问和刷新令牌的过期时间时,您才能在API调用之前检查到期时间。因此,要么您收到了与令牌一起的信息并将其持久化,要么使用了JWT,您可以轻松地检查过期。

就我个人而言,我不会添加这样的检查,除非有一些强有力的论据(例如,您知道您的应用程序将主要用于连接缓慢的远程位置,并且您希望将流量限制在最低限度,等等)。您所介绍的流程是一个常见的流程,并且运行得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69286993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档