2016-08-24 69 views
1

我使用CloudKit來製作簡單的用戶數據庫。什麼是保留用戶登錄的好方法?這意味着,一旦用戶登錄,他們將保持登錄狀態。我使用NSUserDefaults來存儲一個布爾值,以便跟蹤他們是否已登錄,還有一個電子郵件字符串,這樣您就可以知道他們登錄的是哪個帳戶;但是,這可能會導致輕鬆僞造登錄。有誰知道保留這些信息的更好,更安全的方法嗎?如何使用CloudKit保留用戶登錄

往來賬戶記錄類型的結構: Structure

+0

保留登錄到到底是什麼? – rmaddy

+1

@rmaddy因此,當用戶關閉應用程序時,他們可以自動登錄。NSUserDefaults很簡單,因爲我可以保存它們使用特定電子郵件登錄,或者它們未登錄。 – Kendel

+1

登錄到什麼? – rmaddy

回答

0

我已經決定執行以下操作:

  1. 登錄時設置在用戶的鑰匙串的電子郵件和密碼。

    keychainWrapper.mySetObject(password, forKey: kSecValueData) 
    keychainWrapper.mySetObject(email, forKey: kSecAttrAccount) 
    
  2. 當打開的應用程序,重新運行使用存儲在所述鑰匙鏈的信息的登錄過程。如果鑰匙串是空的,則將它們發送到註冊頁面。如果電子郵件/密碼在數據庫中,請將其登錄。如果電子郵件/密碼不在數據庫中,請將其發送到註冊頁面。

  3. 爲了註銷,只需重置鑰匙串的值。

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