【问题标题】:[OAuth][Keycloak] invalid_grant session not active when trying to use refresh_token[OAuth][Keycloak] 尝试使用 refresh_token 时,invalid_grant 会话不活动
【发布时间】:2020-02-07 17:36:04
【问题描述】:

我正在尝试使用 ClientOAuth2.Token.refresh() 刷新 oauth2 令牌,但有时会不断收到错误消息: {"error":"invalid_grant","error_description":"Session not active"}

这是我被 Fiddler 捕获的请求

POST [URL]= HTTP/1.1
Host: [URL]
Connection: keep-alive
Content-Length: 2250
Accept: application/json, application/x-www-form-urlencoded
Origin: http://localhost:8080
Authorization: Basic YXNpbW92LWRldi1laGlzLXdlYjo=
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Sec-Fetch-Mode: cors
Content-Type: application/x-www-form-urlencoded
Sec-Fetch-Site: cross-site
Referer: http://localhost:8080/
Accept-Encoding: gzip, deflate, br
Accept-Language: en,vi;q=0.9,de;q=0.8,vi-VN;q=0.7,en-US;q=0.6,en-AU;q=0.5

refresh_token=[token]&grant_type=refresh_token

可能是我在 KeyCloak 帐户上的设置有问题。有什么建议吗?

【问题讨论】:

    标签: oauth-2.0 keycloak openid-connect refresh-token


    【解决方案1】:

    您需要在检索原始令牌时添加范围offline_access,否则您将无法在相关用户会话不活动时刷新它(这是特定于OIDC,而不是oauth2)。

    【讨论】:

      【解决方案2】:

      可能是您的刷新令牌授予消息不完整 - 缺少客户端 ID 或离线访问范围 - 请参阅我关于 OAuth 消息的文章中的 Refresh Token Grant 部分。

      【讨论】:

      • 链接已失效。 :(
      【解决方案3】:

      这是因为您已从客户端应用程序中注销。这就是它给你错误的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        • 2015-03-03
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多