我正在使用CloudKit
创建一个简单的用户数据库。什么是保留用户登录的好方法?这意味着,一旦用户登录,他们就会保持登录状态。我使用NSUserDefaults
存储一个布尔值来跟踪他们是否已登录,以及一个电子邮件字符串,以便您可以告诉他们登录的帐户;但是,这可能导致轻松伪造登录。有没有人知道保留这些信息的更好,更安全的方法?
答案 0 :(得分:0)
我决定做以下事情:
登录后,在用户的钥匙串中设置电子邮件和密码。
keychainWrapper.mySetObject(password, forKey: kSecValueData)
keychainWrapper.mySetObject(email, forKey: kSecAttrAccount)
打开应用程序时,使用存储在钥匙串中的信息重新运行登录过程。如果钥匙串为空,请将它们发送到注册页面。如果电子邮件/密码在数据库中,请将其登录。如果电子邮件/密码不在数据库中,请将它们发送到注册页面。
要注销,只需重置钥匙串的值。
keychainWrapper.mySetObject("", forKey: kSecValueData)
keychainWrapper.mySetObject("", forKey: kSecAttrAccount)