我开始使用AWS C ++ SDK使用AWS Cognito实施联合身份验证。
我想通过Cognito用户池以及Facebook,Twitter,Google对用户进行身份验证。
我了解我可以在单个用户标识符(Cognito identityId)下链接多个登录,但是只有在首次登录后手动添加此类登录时才有可能。
在示例中,我看到了场景:
首先,我不确定我的方案是否正确,但这是我在阅读了许多此处的文章和AWS文档后才意识到的。
如果情况正确,那么我会遇到另一个问题:如何刷新令牌?
在AWS C ++ SDK中,为了刷新AWS Credential,使用了呼叫CognitoIdentityClient.GetCredentialsForIdentity
,但它要求传递用户登录信息。
我更具体的问题:我需要通过所有登录吗?是否要求登录中的所有访问令牌都没有过期?
答案 0 :(得分:0)
首先,您可以使用联合身份而不使用cognito用户池。这意味着您可以直接通过facebook,google等直接对用户进行身份验证,而不必将其添加到用户池中。如果确实希望所有用户都在用户池中,则必须编写代码以接受来自这些身份验证提供程序的某些参数,然后将它们以及用户名和密码添加到用户池中。
现在继续您的问题。要刷新令牌,您必须使用InitiateAuth。在验证流程中,您必须传递“ REFRESH_TOKEN_AUTH”,在AuthParameters中,您传递刷新令牌。