2

我正在进行需要 OAuth2 的 API 调用。我最初拨打电话并通过网络登录对其进行授权。然后,我使用提供的刷新令牌并使用它在我的应用程序中进行后续调用。

问题是在随后的调用中,刷新令牌用完了,我得到了一个新令牌。我将这个新的保存在数据库中,然后在下次调用时使用保存的那个。这对于大约 xx 次调用非常有用,然后由于某种原因刷新令牌变坏了,我不得不再次通过网络登录手动获取一个。

我无法说出我所知道的令牌何时变坏或为什么变坏。

有没有办法只发送登录信息或 OAuth2 信息或其他可以让我获得新的有效刷新令牌而无需“授权”我自己的应用程序的方法?

我使用的 API 是 Constant Contact。

4

1 回答 1

0

OAuth 标准基于 2 种到期形式:

访问令牌

这些是短暂的 API 凭证,共同的生命周期是 60 分钟。当它们过期时,API 客户端会收到带有 401 状态代码的 HTTP 响应。然后,客户端可以尝试以静默方式更新访问令牌。

刷新令牌

这些是代表用户会话的长寿命凭证,一般寿命为 8 或 12 小时。在此期间,可以静默更新访问令牌。但最终,刷新令牌本身会过期,并且静默续订请求会导致错误代码为invalid_grant 。

用户重新认证

让用户重新进行身份验证有很好的理由,我会避免尝试绕过它。不建议使用持续很长时间的令牌。只需偶尔进行重新身份验证操作以及密码自动填充等功能,可用性就会非常好。

更多详细信息

于 2020-08-25T20:04:39.220 回答