AWS Cognito / Amplify返回空的刷新令牌

时间:2020-09-15 08:32:54

标签: amazon-web-services oauth-2.0 amazon-cognito aws-amplify

我在cognito中有一个用户池,该用户池使用Google作为身份提供者。 现在,使用Amplify,我们将FederatedSign的提供者设为“ Google”,如下所示。

Auth.federatedSignIn({提供者:“ Google”});。

这使我获得了访问令牌ID令牌。但是刷新令牌为空。 这用于oauth responseType:'token'配置。

我在其他地方看到过,我们需要将授予类型更改为“代码”,即responseType:“代码”,以获取刷新令牌。

但是在这种情况下,我在回调URL中得到的是“ code = some-value”,而不是访问令牌和刷新令牌。

我在这里想念什么?

我的目标是能够获取刷新令牌-使用此Amplify将在访问令牌无效时刷新会话。

2 个答案:

答案 0 :(得分:1)

您需要将配置中的oauth.responseType更改为'code',而不是'token'。这样做时出现错误,我不确定为什么,但这是我发现您需要执行的操作。

答案 1 :(得分:0)

我正在使用parseCognitoWebResponse,并且遇到相同的问题。

  1. 在用户池中转到“应用程序客户端”。检查您的Cognito App Client,并确保没有生成任何客户端机密。如果已填写,请重新创建一个App Client,而不生成一个Client Secret

No Client Secret

  1. 将response_type更改为代码

window.location.href =`https:// $ {yourCognitoDomain}?response_type = code&client_id = $ {yourClientId}&redirect_uri = $ {cognitoRedirectUrl}`