如何使用CloudKit保留用户登录

时间:2016-08-24 22:11:53

标签: ios cloudkit

我正在使用CloudKit创建一个简单的用户数据库。什么是保留用户登录的好方法?这意味着,一旦用户登录,他们就会保持登录状态。我使用NSUserDefaults存储一个布尔值来跟踪他们是否已登录,以及一个电子邮件字符串,以便您可以告诉他们登录的帐户;但是,这可能导致轻松伪造登录。有没有人知道保留这些信息的更好,更安全的方法?

帐户记录类型的当前结构: Structure

1 个答案:

答案 0 :(得分:0)

我决定做以下事情:

  1. 登录后,在用户的钥匙串中设置电子邮件和密码。

    keychainWrapper.mySetObject(password, forKey: kSecValueData)
    keychainWrapper.mySetObject(email, forKey: kSecAttrAccount) 
    
  2. 打开应用程序时,使用存储在钥匙串中的信息重新运行登录过程。如果钥匙串为空,请将它们发送到注册页面。如果电子邮件/密码在数据库中,请将其登录。如果电子邮件/密码不在数据库中,请将它们发送到注册页面。

  3. 要注销,只需重置钥匙串的值。

    keychainWrapper.mySetObject("", forKey: kSecValueData)
    keychainWrapper.mySetObject("", forKey: kSecAttrAccount)