Ang*_*Gao 13 authentication api oauth access-token oauth-2.0
我正在为项目实现OAuth,我想知道处理刷新令牌的最佳方法.
我调用的API将返回一个带有access_token,expires_in和refresh_token的JSON对象.所以我在想,是否更好:
计算access_token到期的时间,将其存储在数据库中.每次进行API调用时检查access_token是否未过期,如果它已过期,则使用refresh_token获取新的access_token.
(附加问题:如何确保我为令牌过期计算的时间是准确的?因为expire_in值可能从API服务器生成密钥时开始,而不是在我收到密钥时开始.)
要么
我也对其他实施方案持开放态度.
本文解释了一些大型云服务的做法:http : //blog.cloud-elements.com/oauth-2-0-access-refresh-token-guide
但是,IMO,刷新令牌应该有一个过期时间,比如 1 年。当使用刷新令牌发布新的访问令牌时,它应该会更改,但是,到期日期应该保持不变。当您永远需要刷新令牌时,只需发出具有最大日期值的刷新令牌。此外,请确保在发出新的刷新令牌时将旧的访问和刷新令牌标记为已删除。
客户端应始终准备好处理从API返回的错误,该错误指示access_token验证失败。取决于实现方式,否则访问令牌可能已被吊销或声明为无效。
然后,客户端可以使用refresh_token获取新的访问令牌,然后重试。因此,您可以选择实施1,但是它也不能使您脱离实施2。因此,您可以选择坚持仅实施2,并尽量减少所需的代码量。
当然,如果您想尽可能避免错误发生,可以实施1.优化调用次数并减少整个过程中的错误次数。
| 归档时间: |
|
| 查看次数: |
12187 次 |
| 最近记录: |