2017-08-16 94 views
1

我需要關於這個問題的一些想法。我做了一個具有登錄和註銷功能的應用程序。當人們註銷系統時,我需要尋求解決方案,他們的新用戶必須在兩個小時後才允許。不使用互聯網的IOS應用程序的時間保護算法

我可以使用互聯網做到這一點。它非常基礎。我可以採取註銷時間,當用戶嘗試登錄時,我可以在互聯網上查看小時,但我不想使用此解決方案,因爲不能保證每臺設備都有互聯網。

我可以從手機拿下離線時鐘。但是,此時用戶可以更改時間並快速通過保護。

對此解決方案有什麼想法嗎?我如何在IOS和swift中解決它?

+0

您的登錄是否可以撥打服務器電話? – jarora

+0

是的,但它可以脫機工作。其實,我正在使用Firebase。 – Karamel

回答

1

如果您的應用處於前景/暫停狀態,您可以收聽UIApplicationSignificantTimeChangeNotification。但是,如果你的應用程序被殺害,你將不會得到這個通知。

因此,確保用戶在接下來的2小時內不能登錄的最佳方式是依靠用戶無法更改的真實來源,即後端。

  1. 存儲用戶註銷的時間。
  2. 每次啓動時詢問您的後端當前時間
  3. 將用戶嘗試重新登錄時的登出時間與它比較。
+0

在背景模式下,應用程序只能在現實生活中運行3分鐘,而且這不是個好主意。我試圖找到定位時間,例如倫敦或伊斯坦布爾等。但是我瞭解到,用戶可以在IOS中手工重新排列倫敦時間。 – Karamel

+0

用戶可以快速通過保護,改變時間。 「 」存儲用戶註銷的時間 每次啓動時詢問您的後端當前時間。 將用戶嘗試再次登錄時的註銷時間與其進行比較。 – Karamel

+0

如果你所依賴的只是服務器時間戳,用戶應該無法做到這一點。您也可以在註銷之前獲取服務器時間戳。 – jarora

相關問題