1

我只是想掌握这个框架,我想确认我的方法是正确的。

我可以使用以下方法对我自己的用户进行身份验证:getOpenIdTokenForDeveloperIdentity并提供一个IdentityPoolId和一个 Logins 密钥对,其中包含我的开发者提供者名称和我提供的令牌。

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

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

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

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

4

2 回答 2

2

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

这篇博文可能会有所帮助:

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

于 2014-12-02T16:51:11.977 回答
0

当您使用 Cognito 时,您的用户首先通过身份提供者(例如 facebook、google 或其他 Oauth 提供者)进行身份验证,然后您从中获取的令牌被发送到 Cognito,并且是在登录时将您的用户信息捆绑在一起的关键其他设备。

您不需要将此信息存储在数据库中,除非您正在编写自己的自定义身份提供者并且不使用可用的公共身份提供者之一。

于 2014-12-02T10:08:06.073 回答