如何在Cognito中跨设备链接开发人员身份验证的用户

时间:2014-12-02 09:45:52

标签: amazon-web-services amazon-cognito

我只是试图处理这个框架,我想确认我的方法是正确的。

我可以使用以下方法验证我自己的用户:getOpenIdTokenForDeveloperIdentity并提供IdentityPoolId和登录密钥对以及我的开发者提供商名称和我提供的令牌。

现在,根据我的理解,当用户登录到第二个设备时,为了使Cognito能够理解这是同一个用户,我必须为其提供IdentityId。但是,我不确定以编程方式获取IdentityId的最佳方法,以便它与初始登录匹配。

我能想到的唯一技术是将IdentityId存储在我自己的数据库中,并提供我自己的方法来检索它。这是最好的方法吗?或者我应该以不同的方式使用此框架?

我仍然是AWS的初学者,我只是想了解这个框架的最佳实践。

顺便说一下,我正在为我的后端实现Android SDK和PHP SDK。

2 个答案:

答案 0 :(得分:2)

使用getOpenIdTokenForDeveloperIdentity时,它会返回与您提供的用户标识符关联的标识ID。因此,如果您使用的用户标识符是用户的用户名,则当您使用来自第二个设备的相同用户名调用getOpenIdTokenForDeveloperIdentity时,它将返回关联的标识ID。除非您愿意,否则无需存储身份ID,每次调用getOpenIdTokenForDeveloperIdentity时都会向您提供身份ID​​。

此博客文章可能会有更多帮助:

http://mobile.awsblog.com/post/Tx2FL1QAPDE0UAH/Understanding-Amazon-Cognito-Authentication-Part-2-Developer-Authenticated-Ident

答案 1 :(得分:0)

当您使用Cognito时,您的用户首先使用身份提供商(例如Facebook,Google或其他Oauth提供商)进行身份验证,并将您从中获取的令牌发送给Cognito,这是将用户信息绑定在一起的关键跨越其他设备上的登录。

您不需要将此信息存储在数据库中,除非您编写自己的自定义身份提供程序而不使用其中一个公共提供程序。