当 Cognito 重定向回我的 URL 时找不到刷新令牌

Posted

技术标签:

【中文标题】当 Cognito 重定向回我的 URL 时找不到刷新令牌【英文标题】:Can't find refresh token when Cognito redirects back to my URL 【发布时间】:2018-10-04 16:34:30 【问题描述】:

我正在使用 AWS 的 Cognito 进行测试。此时,我可以像这样取回我的IdTokenAccessTokenRefreshToken

$ aws cognito-idp admin-initiate-auth --user-pool-id us-east-1_XXXXXXXX --client-id XXXXXXXXXXXXXXXXXXXXXXX --auth-flow ADMIN_NO_SRP_AUTH --auth-parameters USERNAME=XXXXXXXXXXXXX,PASSWORD=XXXXXXXXXXXXX --region us-east-1

然后我在这样的 URL 上尝试了默认网页(由 Cognito 提供):

https://test-cognito.auth.us-east-1.amazoncognito.com/login?response_type=token&client_id=XXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https://example.com

此 URL 会将我带到一个我必须进行身份验证的页面,一旦该过程完成,它将带我回到我的 redirect_url 并附加前面提到的 ID:

https://example.com#id_token=XXXXX.XXXXXX.XXXXXX&access_token=XXXXXX.XXXXXXX.XXXXXXX&expires_in=3600&token_type=Bearer

但是没有refresh_token的迹象!在这种情况下如何获得我的refresh_token

【问题讨论】:

【参考方案1】:

我认为目前这是不可能的。 AWS 明确声明刷新令牌仅在流类型为Authorization Code Grant 时可用。

您正在尝试的是Implicit Grant。在您的情况下, responseType 设置为 token。对于授权码授予,将授予类型设置为 code,但这也需要您将客户端密码存储在应用程序中。

来源-https://developer.amazon.com/docs/login-with-amazon/refresh-token.html

有关授权类型的更多信息 - https://alexbilbie.com/guide-to-oauth-2-grants/

【讨论】:

以上是关于当 Cognito 重定向回我的 URL 时找不到刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章

会话范围和 jsf 重定向

AWS cognito - 我们可以修改 Amazon Cognito 在使用谷歌提供商进行身份验证时提供的重定向 URL

Django在外面付款时保持登录丢失

Django在重定向时找不到模式名称

从重定向角度 5 中获取查询参数

AWS Cognito 内置登录重定向问题