我有4-5個Android應用程序,我希望爲所有這些應用程序實現單點登錄。因此,如果用戶已經登錄到任何一個應用程序,他將不會被要求再次登錄其他應用程序。我怎樣才能在Android中實現它?爲Android應用程序實現單點登錄
回答
實施SSO需要擁有一個保存用戶憑證信息的公用數據庫。這樣做的一種方法是實現您自己的身份驗證服務器,該服務器會公開登錄,註冊,重置和忘記每個應用程序用於登錄應用程序的密碼API。
比方說,你正在使用JWT保持無國籍,這意味着auth服務器與JWT響應通過任何Android應用程序每次成功登錄。
因此,您的每個應用程序中的啓動器活動不應該是登錄,而應該是儀表板或用戶在登錄後看到的任何內容。在儀表板的on_create中,檢查共享首選項中是否存在可用的jwt。如果有,請繼續操作儀表板。但是,如果沒有,則登錄活動並讓用戶首先登錄。登錄後,將jwt保存在共享首選項中以供其他應用程序使用。您需要確保所有共享首選項都使用相同的名稱空間來訪問jwt。
爲了使其更加有效,可以實現對登錄,REGD庫模塊和忘記密碼被納入每個應用程序,你會擁有一切準備就緒的應用程序的一部分。三個活動的XML文件可以包含在lib本身中,如果應用程序不能在應用程序中找到它,應用程序將從lib文件加載它們。
現在來服務器部分,實現您的自定義auth服務器,用說的OAuth2是一種方式,但更容易,有喜歡Stormpath或CAS的第三方解決方案這將提供這樣的服務。也許你可以找到一個免費的。
相反JWT的,你可以使用用戶ID(用戶數據庫主鍵),以確定如果用戶登錄或沒有。
需要考慮的另一點是,如果每個應用程序的應用程序服務器(如果有的話)都使用JWT或userId來響應應用程序請求,並且應根據該auth服務器通信令牌來決定。不用說,應用程序服務器和auth服務器也應該在它們之間進行通信以同步應用程序的用戶信息。即使您使用的第三方auth服務器會與保存整個用戶信息的單個數據庫進行通信,但您可能需要努力將應用程序服務器與第三方auth服務器同步,這也是一樣的。
但是,棘手的部分是在註銷並重置密碼並更改密碼。如果使用智威湯遜,我不會談論註銷過程,這有其自身的挑戰,但我在談論使用SSO時的註銷。如果用戶從其中一個應用程序註銷,則需要確定用戶是否必須從其他應用程序註銷。兩者都可以被處理,但通常它會是一個易於實現的單一標誌,它也會提供一個好的UX。此外,如果這些應用程序中的任何一個具有網站版本,並且用戶從網站更改或重置密碼,則需要確保用戶在更改後第一次使用該應用程序時再次登錄設備。然而,這個邏輯必須完全在auth服務器內的服務器端進行管理。
儘管您的問題僅與android應用有關,但您可能必須爲此實現一個服務器並針對每個應用修改appl服務器。這可能有可能完全不是你的問題本質,但你的實際需求可能會幫助我實現這一點。
- 1. SAML:如何爲Web應用程序實現SSO(單點登錄)
- 2. 如何實現Web應用程序的單點登錄?
- 3. 如何在java中實現單點登錄Google應用程序
- 4. 實現Symfony2單點登錄
- 5. 單點登錄Web應用程序Java
- 6. 單點登錄0N,ASP.NET應用程序
- 7. asp.net應用程序+單點登錄
- 8. Spring應用程序的單點登錄
- 9. Android應用程序登錄
- 10. Android應用程序登錄
- 11. Android登錄應用程序
- 12. Android登錄應用程序
- 13. 實現Facebook(SDK 4.0.1)的Android應用程序登錄
- 14. 如何在Android應用程序中實現Facebook登錄?
- 15. 如何在Android應用程序中實現登錄
- 16. 在MVC 3應用程序中使用LDAP實現單點登錄?
- 17. 使用Django實現單點登錄(SSO)
- 18. 使用ADFS實現單點登錄
- 19. 單點登錄WinForms應用程序和asp.net wep應用程序
- 20. Twitter的登錄爲Android應用程序
- 21. 爲Android應用程序登錄系統
- 22. 在Asp.Net MVC應用程序中啓用/創建單點登錄(單點登錄)
- 23. 單一登錄爲Web應用程序
- 24. 如何在離子應用程序內正確實現單點登錄
- 25. Android聊天應用程序 - 單點登錄
- 26. 我們如何在Android應用程序中單點登錄Facebook?
- 27. 爲Web應用程序單點登錄選擇Kerberos(SPNEGO)Java庫
- 28. 如何實現單點登錄?
- 29. 需要實現單點登錄在PHP
- 30. 如何實現單點登錄?
跨多個應用程序使用SharedPreference? http://stackoverflow.com/questions/6030321/android-retrieving-shared-preferences-of-other-application – rafid059 2016-11-10 19:46:01