【问题标题】:How OAuth2 server issue expierd token?OAuth2 服务器如何发出过期令牌?
【发布时间】:2025-12-02 16:55:01
【问题描述】:

我不明白,OAuth2 server 必须对过期令牌做什么?例如client 已过期访问令牌并启动auth codepasswordclient credetials 授权流程、身份验证服务器检查请求和??? (删除过期并颁发新的访问令牌,如refresh流?)

【问题讨论】:

    标签: oauth-2.0 access-token


    【解决方案1】:

    “OAuth2 服务器”可能有不同的含义。它可以是使用令牌的“资源服务器”,也可以是发布令牌的“授权服务器”。请记住,这些可以完全分开。

    资源服务器应该如何处理过期的令牌?它当然应该拒绝它并向客户端发送错误响应。见section 7 of the OAuth2 spec

    如果您的意思是授权服务器应该使用过期令牌“做什么”,那么我猜您指的是令牌存储?这些都不是由 OAuth2 规范定义的。服务器甚至可能不保留令牌的副本(例如,它们可能是签名的 JWT)。通常不需要保留过期的令牌,并且与客户端启动新流程以获取新令牌时发生的情况没有指定的联系。但是,在颁发新令牌时,使该客户端和资源所有者的现有 未过期 令牌过期可能是有意义的。

    【讨论】:

    • 谢谢。您对“授权服务器”的理解正确。我在规范中没有找到这个,所以我可以在每个身份验证流上发布新令牌,而忘记所有过期的不记名令牌?我不能过期未过期的令牌,因为resource owner 可以在不同的平台/浏览器上使用client
    • 是的,您可以忘记过期的令牌。不确定您对过期令牌和用户/资源所有者的意思。您提到的任何流程都不应受到他们使用的平台或浏览器的影响。访问令牌仅由作为单独应用程序的客户端使用。如果授权服务器存储令牌,它可以随时选择过期令牌,并且如果资源服务器有某种方式与授权服务器检查令牌(未在规范中定义,但通常是这种情况),那么它将知道令牌已过期。
    最近更新 更多