Javascript 通过twitter注册的用户的用户池?

Javascript 通过twitter注册的用户的用户池?,javascript,amazon-web-services,aws-sdk,amazon-cognito,Javascript,Amazon Web Services,Aws Sdk,Amazon Cognito,我对Cognito不熟悉。所以我需要澄清一下,我应该如何注册通过社交登录注册的用户 我已经创建了一个用户池和一个联邦身份池 然后,我在用户点击登录按钮时对twitter执行了一个基本的oauth请求,然后使用成功登录后收到的twitter令牌和密码,执行一个获取Cognito身份凭证的请求 var params = { IdentityPoolId: 'my-pool-id', Logins: { 'api.twitter.com': userToken+";"+userSecr

我对Cognito不熟悉。所以我需要澄清一下,我应该如何注册通过社交登录注册的用户

我已经创建了一个用户池和一个联邦身份池

然后,我在用户点击登录按钮时对twitter执行了一个基本的oauth请求,然后使用成功登录后收到的twitter令牌和密码,执行一个获取Cognito身份凭证的请求

var params = {
  IdentityPoolId: 'my-pool-id',
  Logins: {
    'api.twitter.com': userToken+";"+userSecret
  }
};

// initialize the Credentials object with our parameters
AWS.config.credentials = new AWS.CognitoIdentityCredentials(params);
AWS.config.credentials.get(function(err) {
    if (err) {
        console.log("Error: "+err);
        return;
    }
    console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);

    // Other service clients will automatically use the Cognito Credentials provider
    // configured in the JavaScript SDK.
    var cognitoSyncClient = new AWS.CognitoSync();
    cognitoSyncClient.listDatasets({
        IdentityId: AWS.config.credentials.identityId,
        IdentityPoolId: params.IdentityPoolId
    }, function(err, data) {
        if ( !err ) {
            console.log("success", JSON.stringify(data));
        } else {
      console.log("cognito error", err);
    }
 });
然后我得到了一个成功的响应,带有一个cognito标识Id,以及该用户的数据集列表


我也应该在用户池中注册该用户吗?当涉及到社交登录的概念时,该产品的文档有点脱节。

用户池简单地说就是作为应用程序的用户数据库。它适用于那些不想管理数据库来存储用户登录数据的人

用户池是一个身份提供者,就像谷歌、Facebook、Twitter等

如果您希望只允许用户使用Twitter凭据登录您的应用程序,那么您不需要用户池

只考虑使用用户池,如果您想创建用户信息的托管数据库。


罗伯,谢谢。在twitter用户在我的应用程序上进行身份验证后,我想在我的应用程序中为他们管理一些用户首选项。然后我需要利用用户池吗?没问题,根据您所描述的,用户池听起来不适合您的用例。如果你想存储一些用户偏好,链接到他们的twitter帐户,你可以使用Cognito Sync。Cognito Sync允许您以每个身份存储数据。它非常适合存储应用程序的用户首选项等内容。一旦您设置了Cognito联合身份,就不需要做太多额外的工作来使用它。但是,如果您希望同时允许在Cognito用户池中注册的普通用户帐户和twitter帐户登录,那么有没有一种方法允许twitter在Cognito用户池中登录?还有twitter登录返回的包含cognito声明的令牌?(就像你可以在Cognito中使用facebook登录一样)@AdrianBob只是一个想法-也许可以在用户池的Federation部分配置OpenID?