我正在研究一個需要用戶登錄才能使用它的應用程序。用戶只能連接到互聯網時才能登錄。用戶登錄時,應在設備上存儲令牌,允許在不登錄的情況下脫機使用應用程序。我基本上想檢查這個令牌是否存在,如果是,則將用戶帶到應用程序中,否則就是登錄屏幕。此外,此令牌應在一段時間後過期。存儲用於脫機身份驗證的令牌
問題是,如果有一種方法可以存儲令牌,例如24小時後,用戶無法以任何方式篡改或誘騙系統(例如令牌爲時間戳和用戶更改設備時間)。令牌應在用戶未連接到互聯網的情況下過期,以便用戶無法永久使用該應用程序,而無需每隔一段時間重新進行一次認證。
雖然看起來很簡單,但我一直無法找到這個問題的答案。我研究過OAuth和NSHTTPCookie等技術,但這些看起來與在線身份驗證有關,而我試圖在脫機環境中對用戶進行身份驗證。
可行的,但有一些題。您是否要使用存儲的令牌在連接到網絡時在服務器上發送?您可以使用鑰匙串保存憑證並將上次登錄時間保存在Userdeafult(適合您)。在下次登錄之前,將上次登錄時間與24小時進行比較。如果小於yes,則允許訪問其他Keychain的刪除憑證。 –
謝謝你的回覆。不,在令牌過期之前,我不會再與服務器進行身份驗證。令牌由服務器簽名,用於在24小時內對用戶進行認證和授權。即使用戶有互聯網訪問權限,如果存在有效的令牌,我也不想連接到服務器。 –
非常適合鑰匙扣。最佳&安全。 –