首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AWS Cognito + google注册

AWS Cognito + google注册
EN

Stack Overflow用户
提问于 2018-01-29 22:37:18
回答 1查看 11K关注 0票数 10

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

代码语言:javascript
复制
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);
					}});
					
					}
代码语言:javascript
复制
<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>

我想把它保存在这里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-06 17:23:04

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

如果您想自动将google用户添加到您的用户池,有一种方法可以做到这一点。您需要直接将Google as an Identity Provider添加到您的用户池中,然后使用built-in (即托管的) UI进行登录。在此之后,所有的Google登录都会自动在Userpool中创建一个新用户。现在,只需将您的用户池添加到您的身份池中,即从您的身份池中删除Google。在您的登录映射中,您将始终使用Cognito令牌。即使您使用Google登录(通过托管的UI),Google令牌也会被直接发送到userpool,它会提供一个Cognito令牌。此外,请确保在用户池中指定了正确的attribute mappings

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48503736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档