【问题标题】:AWSMobileClient initialise returns user-state "SignedIn" after uninstalling and then installing applicationAWSMobileClient 初始化在卸载并安装应用程序后返回用户状态“SignedIn”
【发布时间】:2020-07-22 10:05:48
【问题描述】:

我正在使用 aws-cognito UserPool(通过 AWSMobileClient)对用户进行身份验证以访问 AWS 服务。 目前用户可以选择通过 Phone、Google 和 Facebook 使用 Hosted UI 选项登录,这需要通过以下方式初始化 AWSMobileClient。 AWSMobileClient.default().initialize( Void##(UserState?, Error?) -> Void#>) 这会返回我当前的用户状态。

用例:我通过 UserPool 登录我的应用程序,然后卸载该应用程序。重新安装应用程序时,我获取当前用户状态,它返回为“已登录”。

我怎样才能阻止这种行为?

【问题讨论】:

    标签: ios swift amazon-cognito amazon-cognito-facebook


    【解决方案1】:

    “问题”是AWS SDK将登录信息存储在钥匙串中,并且在卸载应用程序时不会删除此信息。

    解决方案是在用户首次访问应用时执行注销。在 UserDefaults 中使用 Bool 来判断是否是第一次访问。

    【讨论】:

    • 是的,我知道信息存储在钥匙串中,并且在尝试登录时,如果 AWSMobileError 是指用户已登录的“invalidState”,我然后注销(以避免多余的签名-out 调用),完成后我再次执行登录操作。还调用了 clearKeychain 方法以在用户注销时从钥匙串中删除所有登录名,但由于在此处使用 HostedUI,因此会在调用 AWSMobileClient 的初始化方法时获取来自 awsconfiguration.json 的凭证并为用户获取最后一个用户状态
    猜你喜欢
    • 2020-02-02
    • 2017-01-10
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2017-06-23
    • 2016-03-08
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多