Oauth 2.0 在OAuth2中,当执行刷新令牌请求以检索新的访问令牌时,以前的访问令牌是否无效?

Oauth 2.0 在OAuth2中,当执行刷新令牌请求以检索新的访问令牌时,以前的访问令牌是否无效?,oauth-2.0,Oauth 2.0,步骤 从步骤2开始: “访问令牌”:“1/fFAGRNJru1FTz70BzhT3Zg”-使用此令牌返回无效的访问令牌错误 从步骤3开始: “访问令牌”:“新建1/fFAGRNJru1FTz70BzhT3Zg\u新建”-有效 我的问题是, 这是预期的行为吗? 或 步骤2中的访问令牌是否应在到期(3600s)之前有效 否当您使用刷新令牌并刷新时,它将生成新的访问令牌并附加到刷新令牌。在此之后,旧的访问令牌将不再工作 Expires in是访问令牌的最大TTL,在此之后必须刷新,但没有刷新访问令牌的

步骤

从步骤2开始:

“访问令牌”:“1/fFAGRNJru1FTz70BzhT3Zg”-使用此令牌返回无效的访问令牌错误

从步骤3开始:

“访问令牌”:“新建1/fFAGRNJru1FTz70BzhT3Zg\u新建”-有效

我的问题是,

  • 这是预期的行为吗?
  • 步骤2中的访问令牌是否应在到期(3600s)之前有效

  • 否当您使用刷新令牌并刷新时,它将生成新的访问令牌并附加到刷新令牌。在此之后,旧的访问令牌将不再工作

    Expires in是访问令牌的最大TTL,在此之后必须刷新,但没有刷新访问令牌的最低阈值。

    (我想在shazin的回答中回应您的评论。但我没有声誉:()

    AFAIK当刷新令牌用于获取新的访问令牌时,旧的访问令牌无效

    我简要地查看了OAuth2规范,但没有发现任何东西表明旧的访问令牌在使用刷新令牌时无效。可能是因为假定只有在访问令牌无效时才使用刷新令牌

    无论如何,这两个来自规范的参考可能会有所帮助


  • 谢谢您的快速回答。您能给我指一下说明您所提到内容的OAuth2指南吗?我找不到这样的文档。这是否意味着或者您知道,如果您继续请求新的
    访问令牌
    而不是使用
    刷新令牌
    路由,是否都是访问令牌发布的有效期至到期?我将对此进行测试,但很高兴知道社区了解实际发生的情况。感谢这些非常有用的链接,我将向您发布相同的问题-这是否意味着或者您是否知道,如果您继续请求新的
    访问令牌
    ,而不是使用
    刷新tokens
    route,所有发放的访问令牌是否在到期前都有效?我将对此进行测试,但最好知道社区了解实际发生的情况。
    1. GET https://<canvas-install-url>/login/oauth2/auth?client_id=XXX&response_type=code&redirect_uri=https://example.com/oauth_complete&state=YYY&scope=<value_1>%20<value_2>%20<value_n>
    
    2. POST /login/oauth2/token [grant_type=authorization_code] 
    
    Response:
    {
        "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
        "token_type": "Bearer",
        "user": {"id":42, "name": "Jimi Hendrix"},
        "refresh_token": "tIh2YBWGiC0GgGRglT9Ylwv2MnTvy8csfGyfK2PqZmkFYYqYZ0wui4tzI7uBwnN2",
        "expires_in": 3600
    }
    
    3. POST /login/oauth2/token [grant_type=refresh_token] 
    
    Response:
    {
        "access_token": "new_1/fFAGRNJru1FTz70BzhT3Zg",
        "token_type": "Bearer",
        "user": {"id":42, "name": "Jimi Hendrix"},
        "refresh_token": "tIh2YBWGiC0GgGRglT9Ylwv2MnTvy8csfGyfK2PqZmkFYYqYZ0wui4tzI7uBwnN2",
        "expires_in": 3600
    }