我们正在开发一个iOS应用程序,该应用程序一直使用未经身份验证的对科尼图的访问。我们现在正在添加一个身份提供者:认知用户池。
我们看到,当设备A执行登录过程时,从未经身份验证到身份验证,认知ID保持不变(如预期的那样)。然后当设备B登录时,未经身份验证即可通过身份验证。我们期望用户从设备A获得经过验证的认知ID,但事实并非如此。
即使如此,也许他们都从设备A过渡到了认知ID?情况似乎也不是这样。这两种设备都有单独的认知ID,但使用的用户帐户与科尼托用户池相同。但这两个人都没有一个认知ID,这似乎与文档描述的不同。
有人能确认我们正在做的是一个有效的工作流吗?也许我们做错了什么?
我们将认知ID存储在后端服务器中,以便将数据绑定到用户,但是由于认知ID的意外变化,很难找到一个好的解决方案。
发布于 2016-11-28 23:09:35
您是正确的,对于经过身份验证的用户,即使他是在两个不同的设备上进行身份验证,AWS认知identityId也将是相同的。
你所描述的不是预期的行为。
也许你不是“真正的”认证。“真正”认证是什么意思?这意味着您已经完成了删除密钥链和获取凭据的过程,因为是凭据提供程序转到身份提供程序并获得登录字典(然后分配一个适当的identityId (当它与其他设备相同时)。
您可以通过查看AWS控制台中的联邦身份并查看标识浏览器来判断您是否“真的”通过身份验证。“登录”依靠的身份不应该是0.它应该显示(在您的情况下)1,如果您单击标识,您应该看到它是通过您的池进行身份验证的。
修复?在登录和获取会话之后,您必须“获取ID的凭据”(在ios中是“凭据”方法)。
此链接可能有助于认知笔记和图表
https://stackoverflow.com/questions/40853535
复制相似问题