我可以显式更改从 OAuth 2 中的授权代码授予流程生成的访问令牌的到期时间吗?

Can I explicitly change expiry time of Access token generated from Authorization Code Grant Flow in OAuth 2?

在我的应用程序中,我使用 OAuth 2 授权并从 8 小时后过期的访问代码获取访问令牌。有什么办法可以增加这个到期时间。我得到的默认到期时间是 28800(8 小时),我希望它像 30 天或 60 天一样。可能吗。我知道这可以通过隐式授权流程实现,但是如果我想继续使用授权代码授权流程,这可能吗?

谢谢。

出于安全原因,您不能将访问令牌的寿命延长到超过特定限制。这些令牌应该是短暂的。您可以做的一件事是允许发布刷新令牌以供离线访问。因此,如果访问令牌 expired/about 过期,客户端(安全)可以与授权服务器通信并获得新的访问令牌。

您将无法修改令牌本身,因为它在颁发给您之前已由 STS 签名。如果您要修改字段本身,则在您携带令牌时签名验证将失败。正如 dvsakgec 所说,这个令牌是短暂的,正确的模式是在它过期时使用刷新令牌来获取新的访问令牌。对于大多数身份提供者,刷新令牌永不过期,因此您始终可以获得新的访问令牌。

现在,一些身份提供商将允许您通过他们的开发者工具配置令牌。这取决于供应商。令牌过期没有硬性指南,由身份提供者决定。