有没有办法在 AWS Cognito 中为给定设备重新生成 identityId?

Is there a way to regenerate an identityId in AWS Cognito for the given device?

我有一个使用 AWS Cognito 获取身份 ID 然后可能对其进行身份验证的应用程序。情况是客户端首先以未经身份验证(访客)身份使用该应用程序,然后使用 Facebook 登录,使 him/herself 成为经过身份验证的用户,AWS 会为经过身份验证的用户保留给定的身份 ID,因为他是新用户。现在,问题来了,当您注销该应用程序时,其他人想以未经身份验证甚至经过身份验证的方式使用该应用程序。 Cognito 会错误地指出访问身份 ID 是被禁止的,因为它已经链接到之前用户的 Facebook 帐户。解决此问题的最佳做法是什么?也许是重置设备身份 ID 的方法?

谢谢!

Cognito 移动 SDK 内置了一种方法来处理此问题。他们在使用身份 ID 时缓存它,这导致了您所看到的问题。当您注销时,您需要清除该缓存。我不确定您使用的是哪个 SDK,但在 iOS 中是 AWSCognitoIdentityProvider.clear() 和 Android 中的 CognitoCachingCredentialsProvider.clear()。同样,如果您使用的是 Cognito Sync,则该客户端中有一种方法可以擦除缓存的 ID 和同步数据。

这是否回答了您的问题?