2017-08-15 22 views
0

當用戶安裝應用程序時,我們在應用程序上生成唯一的ID並存儲它。啓用一次登錄到一臺設備

用戶可以用用戶名和密碼登錄。如果登錄成功,服務器將OAuth令牌發送至應用程序。應用程序存儲令牌和刷新令牌以備將來使用。

但是當用戶嘗試從新設備登錄時,我想從以前的手機註銷用戶。

如何註銷其他設備?

(我想從之前的設備中刪除OAuth憑證。如果沒有應用程序嘗試刷新令牌,並允許用戶登錄。)

,我想辦理註銷邏輯? 請任何幫助。

回答

1

我不認爲接受的答案是一個正確的解決方案。你不應該在客戶端有這個邏輯。這可能會導致潛在的安全問題。

您所要做的只是使服務器端的舊oauth令牌無效,因此下次舊設備使用舊令牌時,會收到400個invalid_grant異常,即您必須執行註銷時。

+0

是的。但那麼我怎麼知道從哪個設備用戶登錄? –

+0

我是否需要重寫OAuth登錄方法?如果不是OAuth將新令牌給予同一用戶。 (兩個用戶可以同時登錄) –

+1

Roshan,我不知道你的oauth實現是什麼。我無法深入細節!重要的是,只要您使登錄的用戶帳戶的舊刷新令牌失效,只有最新的令牌將被激活,而當其他設備嘗試使用舊令牌訪問API時,它將被註銷。 –

1

您可以發送通知到先前登錄的設備以刪除登錄。或者每次應用程序啓動時在後臺進行檢查,如果登錄在服務器或其他設備已經登錄的情況下仍然有效。如果已登錄的其他設備不讓用戶進入應用程序並從應用程序中刪除登錄憑據。

+0

所以當用戶從另一臺設備登錄。登錄成功後,我需要更新生成設備ID在單獨的電話?或使用用戶名,密碼和設備ID登錄?因爲在OAuth登錄中,我無法傳遞設備ID。 –

+0

是的,你需要更新設備ID在一個單獨的電話。 –

+0

用戶是否可以通過登錄以編程方式濫用應用程序來調用我們的後端? –