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

Can't find refresh token when Cognito redirects back to my URL

我正在使用 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

我认为目前还不可能。 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/