Authentication 我可以通过编程方式创建AWS Cognito用户登录吗?

Authentication 我可以通过编程方式创建AWS Cognito用户登录吗?,authentication,amazon-web-services,federated-identity,amazon-cognito,Authentication,Amazon Web Services,Federated Identity,Amazon Cognito,我希望我的应用程序允许用户使用Facebook、Google、Amazon。。。等帐户,以便能够登录到我的应用程序。这在AWS Cognito中运行良好 但是,如果用户没有任何登录,应用程序是否可以通过编程方式创建用户登录 用户将提供id和密码,应用程序将向认证提供商发送信息以创建新的登录/帐户 我不需要实现自己的身份验证机制,也不用担心密码是如何存储的 根据我的研究,我认为现有的身份验证提供商甚至其他服务(如OpenID)都无法做到这一点 如果我不想实现自己的登录存储和身份验证,您还有其他选择

我希望我的应用程序允许用户使用Facebook、Google、Amazon。。。等帐户,以便能够登录到我的应用程序。这在AWS Cognito中运行良好

但是,如果用户没有任何登录,应用程序是否可以通过编程方式创建用户登录

  • 用户将提供id和密码,应用程序将向认证提供商发送信息以创建新的登录/帐户

  • 我不需要实现自己的身份验证机制,也不用担心密码是如何存储的

  • 根据我的研究,我认为现有的身份验证提供商甚至其他服务(如OpenID)都无法做到这一点


    如果我不想实现自己的登录存储和身份验证,您还有其他选择吗?它不一定需要与AWS Cognito集成。

    您好,这是我以前在实施社交媒体认证方面的经验。
    我的结论是这很难实现。如果您不知道在iOS中显示什么web视图来验证用户身份,您需要使用iOS
    ACAccountStore
    类来实现这一点,但即使这样,也只提供了登录而不登录的机会。

    我对您的问题有点困惑。如果你问:

    我可以通过编程在Facebook/Google上创建新用户名和密码吗

    答案是否定的。你必须在他们的网站上注册Facebook/Google。如果你问:

    我可以创建一个用户名和密码只存在于Cognito中的新用户吗

    那么答案是肯定的。为此,这取决于您是在浏览器中还是在服务器上创建用户。在浏览器中,使用。在服务器上,使用

    下面是一些示例代码,用于在Node JS中的服务器上创建新用户(将我的字符串替换为您自己的令牌,尤其是其中带有@符号的令牌):


    只要你能让它工作,你可能会想看看这篇关于如何登录的帖子。

    使用FB/Google登录不会让你进入一个可以登录或注册的页面吗?我希望用户留在我的应用程序中,注册时不必打开浏览器或其他应用程序。所有认证提供商都不希望第三方应用程序在他们的网站上创建帐户-例如例如,这是一个安全风险,因为你的应用程序会有用户密码(OpenID的目的之一就是为了避免这个),而这样的API对垃圾邮件发送者来说非常有吸引力。我认为最初的海报是问cognito联合身份,因为问题是从2014年开始的,用户池直到2016年才启动,但对于用户池来说,这是一个有效的答案。这很公平。去年晚些时候,当我第一次学习Cognito时,我发现了这个问题,它把我搞糊涂了,你不能在Cognito中使用用户。很高兴现在好多了。
      let params = {
        UserPoolId: "@cognito_pool_id@",
        Username: "jhancock",
        DesiredDeliveryMediums: ["EMAIL"],
        ForceAliasCreation: false,
        MessageAction: "SUPPRESS",
        TemporaryPassword: "somePassword",
        UserAttributes: [
          { Name: "given_name", Value: "John"},
          { Name: "family_name", Value: "Hancock"},
          { Name: "name", Value: "John Hancock"},
          { Name: "email", Value: "john@gmail.com"},
          { Name: "phone_number", Value: "+15125551212"}
        ],
      };
      console.log("Sending params to cognito: " + JSON.stringify(params));
      let cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider({region: "us-east-1"});
      cognitoIdentityServiceProvider.adminCreateUser(params, function(error, data) {
        if (error) {
          console.log("Error adding user to cognito: " + JSON.stringify(error), error.stack);
        } else {
          console.log("Received back from cognito: " + JSON.stringify(data));
        }
     }