我有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. 如何實現Web應用程序的單點登錄?
- 2. 實現Symfony2單點登錄
- 3. asp.net應用程序+單點登錄
- 4. 單點登錄0N,ASP.NET應用程序
- 5. Android應用程序登錄
- 6. Android應用程序登錄
- 7. Android登錄應用程序
- 8. 如何在Android應用程序中實現Facebook登錄?
- 9. 使用ADFS實現單點登錄
- 10. 使用Django實現單點登錄(SSO)
- 11. 爲Android應用程序登錄系統
- 12. 單一登錄爲Web應用程序
- 13. 爲Web應用程序單點登錄選擇Kerberos(SPNEGO)Java庫
- 14. 如何實現單點登錄在MVC4
- 15. 如何實現單點登錄?
- 16. Android單點登錄
- 17. Android單點登錄
- 18. 爲Android應用程序實現容器應用程序?
- 19. Rails中跨域的單點登錄多站點應用程序?
- 20. Android - 使用jarsigner登錄應用程序
- 21. 跨應用程序的表單身份驗證單點登錄
- 22. 使用多個UINavigationControllers來實現登錄應用程序
- 23. Android:如何在MyApp上實現GMAIL的單點登錄(SSO)?
- 24. 如何在Android上實現單點登錄
- 25. Wordpress Facebook登錄Android應用程序
- 26. 在Android中登錄應用程序
- 27. 在Android應用程序Facebook SDK登錄
- 28. Android應用程序FB登錄..
- 29. 保持登錄到Android應用程序
- 30. 谷歌加登錄android應用程序
跨多個應用程序使用SharedPreference? http://stackoverflow.com/questions/6030321/android-retrieving-shared-preferences-of-other-application – rafid059 2016-11-10 19:46:01