当 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 进行测试。此时,我可以像这样取回我的IdToken
、AccessToken
和RefreshToken
:
$ 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 时找不到刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章
AWS cognito - 我们可以修改 Amazon Cognito 在使用谷歌提供商进行身份验证时提供的重定向 URL