首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OAuth刷新令牌最佳实践

OAuth刷新令牌最佳实践
EN

Stack Overflow用户
提问于 2015-03-20 15:20:06
回答 2查看 26.2K关注 0票数 31

我正在为一个项目实现OAuth,我想知道处理刷新令牌的最佳方法。

我调用的API将返回一个带有access_token、expires_in和refresh_token的JSON对象。所以我在想,最好是:

  1. 计算access_token过期的时间,将其存储在数据库中。每次进行API调用时,请检查access_token是否过期,如果它已过期,则使用refresh_token获取新的access_token。 (附加问题:如何确保计算令牌过期的时间是准确的?因为expire_in值可能是从API服务器生成密钥时开始的,而不是在我收到密钥时开始的。)

  1. 每次都尝试使用access_token进行API调用,如果返回时出现错误,则使用refresh_token。

我也愿意接受其他实现这一目标的备选方案。

EN

回答 2

Stack Overflow用户

发布于 2015-03-20 15:55:19

客户端应该随时准备处理从API返回的错误,该错误指示access_token验证失败。根据实现的不同,访问令牌可能已被撤销或声明无效,否则。

然后,客户端可以使用refresh_token获得一个新的访问令牌,然后再试一次。所以您可以选择实现1,但它也不能使您免于实现2,所以您可以选择只实现2,并尽量减少所需的代码量。

当然,如果您希望尽可能防止错误发生,您可以实现1.以优化调用数量,并减少整个过程中的错误数。

票数 15
EN

Stack Overflow用户

发布于 2016-08-18 22:53:21

本文解释了一些大型云服务的实践:http://blog.cloud-elements.com/oauth-2-0-access-refresh-token-guide

然而,国际海事组织,刷新令牌应该有一个到期时间,比如说1年。当使用刷新令牌发出新访问令牌时,它应该更改,但是,到期日期应该保持不变。当您永远需要刷新令牌时,只需发出具有最大日期值的刷新令牌即可。此外,在发出新的刷新令牌时,请确保将旧访问和刷新令牌标记为已删除。

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

https://stackoverflow.com/questions/29170013

复制
相关文章

相似问题

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