Amazon web services 使用多个登录名的Cognito标识 我开始使用AWS C++ + SDK实现AWS认知认证联合。

Amazon web services 使用多个登录名的Cognito标识 我开始使用AWS C++ + SDK实现AWS认知认证联合。,amazon-web-services,amazon-cognito,aws-sdk-cpp,Amazon Web Services,Amazon Cognito,Aws Sdk Cpp,我想用Cognito用户池和Facebook、Twitter、Google对用户进行身份验证 我知道我可以在单个用户标识符(Cognito identityId)下链接多个登录,但只有在首次登录后手动添加此类登录时才有可能 在示例中,我看到了以下场景: 使用Cognito UserPool注册用户 然后,保持身份验证,用户使用Facebook对自己进行身份验证。Facebook代币可以添加到登录中 当进一步检索AWSCredentials调用过程时,Facebook登录将添加到Cognito标识

我想用Cognito用户池和Facebook、Twitter、Google对用户进行身份验证

我知道我可以在单个用户标识符(Cognito identityId)下链接多个登录,但只有在首次登录后手动添加此类登录时才有可能

在示例中,我看到了以下场景:

  • 使用Cognito UserPool注册用户
  • 然后,保持身份验证,用户使用Facebook对自己进行身份验证。Facebook代币可以添加到登录中
  • 当进一步检索AWSCredentials调用过程时,Facebook登录将添加到Cognito标识池的用户标识中
  • 之后,用户可以使用UserPool凭据登录,并使用相同的用户标识ID通过Facebook身份验证
  • 首先,我不确定我的场景是否正确,但这是我在阅读了这里的许多帖子和AWS文档后意识到的

    如果场景是正确的,那么我就陷入了另一个问题:如何刷新令牌

    < As> C++中SD>为了刷新AWS凭证,调用“代码> CytIoLogIdItCurrest.GETCurdInTalssFor I/<代码>,但它需要通过用户登录。


    我更具体的问题是:我需要通过所有登录吗?它是否要求登录中的所有访问令牌都不过期?

    解决您的第一个问题,您可以使用联邦身份,而不使用cognito用户池。这意味着您可以直接使用facebook、google等对用户进行身份验证,而不将其添加到用户池中。如果您确实希望所有用户都在用户池中,那么您必须编写代码来接受来自这些身份验证提供程序的某些参数,然后将它们连同用户名和密码一起添加到您的用户池中


    现在谈谈你的问题。要刷新令牌,您必须使用。在auth flow中,您必须传递“REFRESH\u TOKEN\u auth”,在AuthParameters中,您必须传递REFRESH TOKEN

    处理您的第一点,您可以使用联邦身份,而不必使用cognito用户池。这意味着您可以直接使用facebook、google等对用户进行身份验证,而不将其添加到用户池中。如果您确实希望所有用户都在用户池中,那么您必须编写代码来接受来自这些身份验证提供程序的某些参数,然后将它们连同用户名和密码一起添加到您的用户池中


    现在谈谈你的问题。要刷新令牌,您必须使用。在auth flow中,您必须传递“REFRESH\u TOKEN\u auth”,在AuthParameters中,您必须传递REFRESH TOKEN

    是的,我知道这一切,无论如何,谢谢。此外,在AWS文档中,当登录名传递到
    InitiateAuth
    时,Cognito会隐式链接登录名。我的问题更多的是关于账户链接。我已经成功使用了用户池和刷新令牌。但我不确定1)只有当我有一些有效登录时,我才能链接登录,2)如果这样,即Facebook访问令牌将过期,-我是否能够刷新AWSCredentials或需要刷新令牌?所有过期代币还是只有一个?是的,我知道所有这些,无论如何,谢谢。此外,在AWS文档中,当登录名传递到
    InitiateAuth
    时,Cognito会隐式链接登录名。我的问题更多的是关于账户链接。我已经成功使用了用户池和刷新令牌。但我不确定1)只有当我有一些有效登录时,我才能链接登录,2)如果这样,即Facebook访问令牌将过期,-我是否能够刷新AWSCredentials或需要刷新令牌?所有过期代币还是只有一个?