Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Amazon cognito未提供由联合身份提供者提供的刷新令牌(Google登录)_Amazon Web Services_Oauth 2.0_Amazon Cognito_Google Authentication - Fatal编程技术网

Amazon web services Amazon cognito未提供由联合身份提供者提供的刷新令牌(Google登录)

Amazon web services Amazon cognito未提供由联合身份提供者提供的刷新令牌(Google登录),amazon-web-services,oauth-2.0,amazon-cognito,google-authentication,Amazon Web Services,Oauth 2.0,Amazon Cognito,Google Authentication,我正在尝试通过Amazon Cognito添加Google登录,我已经设置了所需的一切,我还配置了从Google到我的池属性的属性映射,我已经将“access\u token”属性映射到“Google\u access\u token”属性,将“refresh\u token”映射到“Google\u refresh\u token”。当登录过程开始时,google会提示我所需的权限,并重定向回我的应用程序,我可以在cognito仪表板上看到用户添加了“google_access_token”中

我正在尝试通过Amazon Cognito添加Google登录,我已经设置了所需的一切,我还配置了从Google到我的池属性的属性映射,我已经将“access\u token”属性映射到“Google\u access\u token”属性,将“refresh\u token”映射到“Google\u refresh\u token”。当登录过程开始时,google会提示我所需的权限,并重定向回我的应用程序,我可以在cognito仪表板上看到用户添加了“google_access_token”中映射的访问令牌,但没有刷新令牌。我仔细检查了每个配置,一切似乎都很好。我还尝试映射除刷新令牌外正在映射的其他属性,如“token\u type”和“expires\u in”。

我发现要从google生成刷新令牌,客户端需要在GET参数中传递“access\u type=offline”参数,Amazon Cognito在使用google启动OAUTH登录时不会发送这些参数,所以谷歌不提供谷歌刷新令牌。所以简而言之,如果您使用的是AmazonCognito,就没有办法(至少现在)从google获得刷新令牌并“离线”访问google API。或者,我使用了Auth0,它支持这一点,可以将access_类型参数发送到google,并可以存储刷新令牌

如果我可以问的话,你看过这份文件吗

说到这里,这个问题可能是因为我们在Cognito用户池中设置了OAuth流。我们需要使用“授权码授权”作为OAuth流。隐式授权不会生成刷新令牌,但授权代码授权会生成刷新令牌

如果您在项目中使用Amplify框架,这个框架将为您完成大部分繁重的工作。您只需正确设置用户池的应用程序客户端,并为该特定应用程序客户端配置Amplify


我希望这能有所帮助。

我需要获取访问令牌和刷新令牌才能访问我服务器上的Google API。我使用授权类型作为授权代码,但是我在FE上获得的令牌是由Cognito生成的,而不是来自google。这就是为什么当我试图访问google API时,我得到了401错误。你能帮我解决这个问题吗?