在登錄我的應用程序時,我得到對於特定用戶,BackEnd API中當前用戶登錄有效的時間 [「liveTime」]。我將這個liveTime(參數)保存到NSUserDefaults。如何在一段時間後自動註銷用戶?
我的要求是當liveTime變爲0時再次顯示登錄頁面。如果該特定用戶殺死該應用程序,並且如果liveTime大於0,它將在登錄發生後顯示默認頁面。
請分享您的經驗如何做或解決此類問題的最佳做法。如果有人已經這樣做,請分享代碼片段。
在登錄我的應用程序時,我得到對於特定用戶,BackEnd API中當前用戶登錄有效的時間 [「liveTime」]。我將這個liveTime(參數)保存到NSUserDefaults。如何在一段時間後自動註銷用戶?
我的要求是當liveTime變爲0時再次顯示登錄頁面。如果該特定用戶殺死該應用程序,並且如果liveTime大於0,它將在登錄發生後顯示默認頁面。
請分享您的經驗如何做或解決此類問題的最佳做法。如果有人已經這樣做,請分享代碼片段。
也許這可以幫助你。
func afterDelay(seconds: Double, closure:() ->()) {
let when = dispatch_time(DISPATCH_TIME_NOW, Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(when, dispatch_get_main_queue(), closure)
}
調用函數
self.afterDelay(4) {
// Write what you want to happen after 4 sec. You can increase the number
self.dismissViewControllerAnimated(true, completion: nil)
}
的解決方案是跟蹤在NSUserDefaults的你上次登錄的時間戳的最後最大生存時間從服務器中檢索(除非它必須在那個時候被取出[因與服務器通信帶來的延遲而不適當的事情])。
然後,在您的初始控制器的viewDidLoad
或您的AppDelegate中(選擇是您的),檢查該時間是否超出允許的最大值並據此進行。
UPDATE:
最佳實踐:
1.-添加某種等待頁面,離開那裏用戶等到您檢索來自服務器的數據。
2:接收數據,檢查保存在NSUserDefaults的的時間戳和進行要麼登錄後或歡迎
3.-如果用戶登錄,然後更新頁時間戳記NSUserDefaults
使用戶可以在將來創建過期日期時使用添加時間間隔進行登錄。然後,你需要的是檢查這個日期是過去還是未來,並根據它來決定做什麼 –
感謝您的評論。使用案例就像 - >如果liveTime等於30天,那麼用戶應該登錄30天。如果用戶在30天之前退出,liveTime將變爲0並再次登錄,那麼liveTime將再次變爲30天,或者當時爲特定用戶發送的任何API。這種用例我也必須處理。 – Captain
每當用戶登錄時,將'liveTime'保存在NSUserDefaults中。每當他們嘗試執行要求他們進行身份驗證的操作時,請檢查liveTime是否已經完全過期,如果活動時間已過,請將其註銷並重定向到登錄頁面。 –