我在客户端上使用Facebook登录和AWS Cognito建立了身份验证流程。我需要在dynambodb表中使用其facebook id的用户引用,并验证API调用实际上是否具有有效的facebook id,此facebook id与AWS Cognito Id匹配。 我在这个答案中找到了一个解决方案:AWS Cognito, Lambda, User credentials in DynamoDB
但是在我在同一设备上登录Cognito几次之后,我发现控制台中有几个不同的身份ID。像这样: screen shot
我认为身份ID对于具有特定Facebook ID的特定设备是唯一的。我犯了一些错误吗?如果身份标识更改,我如何将Facebook用户的数据存储在dynamoDB中?
这是我的代码:
@media and screen (max-width)
当执行InitCognito()方法时,我获得了一个unAuthorized Identity Id(一旦我在同一设备上重新安装此应用程序,unAuthorized Identity Id就会更改)。我可以成功获得Facebook用户ID和令牌。执行credentials.AddLogin()方法后,Debug.Log(credentials.GetCachedIdentityId())显示Identity Id与unAuthorized Identity Id相同,而不是引用Facebook Id的特定id。我是否以错误的方式使用credentials.AddLogin()?
谢谢!
答案 0 :(得分:1)
您出现多个身份的原因是他们未经身份验证。你提出了很多请求而没有给出facebook令牌。任何带有facebook令牌的请求都会为您提供相同的身份验证ID(您在上面提到的ID),但您必须继续提供该令牌才能获得它。这些将映射到一个唯一的ID,但没有一个的请求不会。