即使在删除并重新安装应用程序后,AWS Cognito也会自动登录

时间:2018-02-15 08:32:44

标签: amazon-web-services aws-sdk amazon-cognito aws-cognito aws-sdk-ios

我最近创建了一个带有Cognito用户池的AWS Mobile中心项目,当我登录时它记住了登录用户,一旦我删除了应用程序(没有登出)并重新安装应用程序,它会自动登录到以前的帐户,如何防止这个问题?

P.S - 我正在使用最新的AWS Mobile Hub iOS SDK

1 个答案:

答案 0 :(得分:3)

之所以会发生这种情况,是因为Cognito框架将登录信息存储在钥匙串中,即使删除了应用程序,该信息仍然存在。解决此问题的一种方法是在应用程序启动时检查该应用程序是否是全新安装,并在登录后注销当前用户。

要检查我的应用程序中是否有全新安装和更新,我通常将内部版本号存储在UserDefaults中,并检查它是否为nil或在应用程序启动时已更改:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let previousBuild = UserDefaults.standard.string(forKey: "build")
    let currentBuild = Bundle.main.infoDictionary!["CFBundleVersion"] as! String
    if previousBuild == nil {
        //fresh install
        //logout of current user
    } else if previousBuild != currentBuild {
        //application updated
    }
    UserDefaults.standard.set(currentBuild, forKey: "build")

    return true
}