当前位置: 首页 > 知识库问答 >
问题:

AWS认知+谷歌注册

韦澄邈
2023-03-14

我已经尝试了下面的代码,它工作得很好。然而,我需要在用户池中存储这些注册细节(另外,我还想添加一些自定义属性)。但我没有找到一个合适的方法来做到这一点。

function signinCallback(authResult) {
			AWS.config.region = 'us-XXXXXXX-1';
            // Add the Google access token to the Cognito credentials login map.
            AWS.config.credentials = new AWS.CognitoIdentityCredentials({
                IdentityPoolId: 'us-XXXX-1:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
                RoleArn: 'arn:aws:iam::XXXXXXXX:role/Cognito_XXXXXXXXXUnauth_Role',
                Logins: {
                    'accounts.google.com': authResult['id_token']
                }
            });

            // Obtain AWS credentials
            AWS.config.credentials.get(function (err) {
                alert(err);
                if (err) {
                    console.log(err);
                } else {
                    //client = new AWS.CognitoSyncManager();
                    console.log(AWS.config.credentials);
                    console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);
					}});
					
					}
<span class="g-signin" data-callback="signinCallback" data-clientid="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXX.apps.googleusercontent.com"
   data-cookiepolicy="single_host_origin" data-requestvisibleactions="http://schemas.google.com/AddActivity"
    data-scope="https://www.googleapis.com/auth/plus.login">
</span>

我想把它保存在这里。

共有1个答案

穆修杰
2023-03-14

根据您的代码片段,您正在使用Cognito联邦标识(即标识池),并将您的Google令牌添加到登录映射中。这不会将Google用户添加到您的Cognito Userpool中,因为在联邦身份中,Cognito Userpool只是另一个像Google一样的身份提供者(IdP)。就像在userpool中注册一个新用户不会创建一个新的Google或Facebook帐户一样,添加一个Google令牌也不会创建一个新的userpool用户。简而言之,Cognito Userpool与IdentityPool是分开的,IdentityPool中的活动(如在登录地图中添加Google令牌)不会影响它。

如果你想把google user自动添加到你的用户池中,有一种方法可以做到这一点。您需要将Google作为身份提供商直接添加到您的用户池中&使用Cognito的内置(即托管)UI进行登录。在此之后,所有谷歌登录将自动,在用户池中创建一个新用户。现在,只需将您的userpool添加到您的身份池中,即从您的身份池中删除Google。在您的登录地图中,您将始终使用认知令牌。即使使用Google登录(通过托管的UI),Google令牌也会直接发送到userpool并出售一个Cognito令牌。此外,确保在用户池中指定了正确的属性映射。

 类似资料:
  • 我使用的是AWS Cognito的JavaScript SDK(http://docs.AWS.amazon.com/Cognito/latest/developerGuide/using-amazon-cognito-user-identity-pools-javascript-examples.html)。

  • 我必须使用Cognito API(不是用带有SDK的语言编码)。我使用Fiddler只是测试了一个最近创建的用户池和用户注册,但我不断得到:

  • 我看了这些例子:http://www.jellyfishtechnologies.com/integration-with-google-using-grails-oauth-plugin/ http://www . jelly fish technologies . com/integration-with-Google-using-oauth 2-grails-oauth-plugin/ 我无

  • 如果通过api网关在aws lambda上编码,是否可能接收谷歌驱动器推送通知?Google drive要求验证webhook地址,那么是否有可能验证api网关endpoint? 好吧,下面是google如何进行metatag验证的图像:为了获得所需的验证meta标记,我需要首先输入我想要验证的URL/endpoint。下图显示了我创建的endpoint: 请在这里指导我如何使验证成功!

  • 我建立Android应用程序链接到谷歌云存储。我想允许访问GCS到我的Android应用程序只。 谷歌提供三种安全连接地面军事系统的解决方案: Oauth 2.0(谷歌账户也是如此) 资料来源:https://developers.google.com/storage/docs/authentication?hl=FR 是否有其他通过地面军事系统安全连接的解决方案?我希望通过这种方式在地面军事系统

  • 我一直在研究如何将((谷歌推送通知))与PHP结合使用,但没有太多的工作示例/文档。。。 我正试图让它在一个内部网络上工作,这个网络不是通过HTTP对外开放的。 我能够从我们的外向型域通过HTTPS实现这一点,但内部尝试在Chrome控制台中告诉我,“API可能不再从不安全的来源使用”,我发现这意味着它需要HTTPS。 有人知道这方面可能的解决方法吗?欺骗HTTPS,或者允许它通过HTTP继续?我