2016-01-21 96 views
-1

在登錄我的應用程序時,我得到對於特定用戶,BackEnd API中當前用戶登錄有效的時間 [「liveTime」]。我將這個liveTime(參數)保存到NSUserDefaults。如何在一段時間後自動註銷用戶?

我的要求是當liveTime變爲0時再次顯示登錄頁面。如果該特定用戶殺死該應用程序,並且如果liveTime大於0,它將在登錄發生後顯示默認頁面。

請分享您的經驗如何做或解決此類問題的最佳做法。如果有人已經這樣做,請分享代碼片段。

+0

使用戶可以在將來創建過期日期時使用添加時間間隔進行登錄。然後,你需要的是檢查這個日期是過去還是未來,並根據它來決定做什麼 –

+0

感謝您的評論。使用案例就像 - >如果liveTime等於30天,那麼用戶應該登錄30天。如果用戶在30天之前退出,liveTime將變爲0並再次登錄,那麼liveTime將再次變爲30天,或者當時爲特定用戶發送的任何API。這種用例我也必須處理。 – Captain

+1

每當用戶登錄時,將'liveTime'保存在NSUserDefaults中。每當他們嘗試執行要求他們進行身份驗證的操作時,請檢查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) 
       } 
+0

推遲一個月? –

+0

這不適用於用戶的情況 –

+0

這不起作用。 – Captain

0

的解決方案是跟蹤在NSUserDefaults的你上次登錄的時間戳最後最大生存時間從服務器中檢索(除非它必須在那個時候被取出[因與服務器通信帶來的延遲而不適當的事情])。

然後,在您的初始控制器的viewDidLoad或您的AppDelegate中(選擇是您的),檢查該時間是否超出允許的最大值並據此進行。

UPDATE:

最佳實踐:

1.-添加某種等待頁面,離開那裏用戶等到您檢索來自服務器的數據。

2:接收數據,檢查保存在NSUserDefaults的時間戳和進行要麼登錄後歡迎

3.-如果用戶登錄,然後更新頁時間戳記NSUserDefaults

+0

用戶登錄後我應該啓動報警管理器嗎?或者,您可以分享代碼片段,然後分享最佳做法嗎? – Captain

+0

在簽到的時候,我只會得到這個現場時間。沒有任何其他的API。 – Captain

+0

請分享代碼片段。 – Captain