2016-11-08 44 views
-8

我想在Android上實現單點登錄。如何在Android上實現單點登錄

我有一組移動應用程序需要與服務器通話以識別用戶。

當其中一個應用程序被識別爲屬於該用戶時,其他應用程序應該能夠檢測到,而不要求用戶進一步識別。

因此,用戶基本上只會登錄一個應用程序,所有其他應用程序都會自動執行。

請問我該怎麼做到這一點?

+7

對不起,但我們不能只寫你的代碼。僅僅因爲你有一個獎勵並不意味着你的帖子可以在不是 –

+1

跨多個應用使用SharedPreference嗎? http://stackoverflow.com/questions/6030321/android-retrieving-shared-preferences-of-other-application – rafid059

+0

您是否正在尋找一種解決方案來識別基於不同應用程序和設備的獨特身份的用戶?例如:如果用戶A有兩個設備D1和D2,並且在具有相同發佈者的任一設備上有兩個不同的應用程序。現在,如果用戶登錄了其中一個應用程序,那麼您希望識別用戶的所有詳細信息。我對嗎? – AndroidHacker

回答

4

您可以使用中央應用程序執行登錄,並將其作爲來自其他應用程序的服務調用。登錄管理應用程序應該具有標記爲應用程序特定權限的服務(請參閱https://developer.android.com/guide/topics/manifest/permission-element.html),並應將android:protectionLevel屬性設置爲signature;例如,在您的Android清單:

<permission android:name="com.example.SSO_ACCESS" 
    android:protectionLevel="signature" /> 

而且也是您的Android清單:

<service android:enabled="true" 
    android:exported="true" 
    android:name=".SingleSignOnService" 
    android:permission="com.example.SSO_ACCESS" > 
    . . . 
</service> 

這將允許您創建一個溝通的應用程序登錄應用程序的服務,但沒有其他應用程序將是能夠。

你應該使用標準的Android服務技術與服務通信(綁定使用bindService()用適當的意圖的服務 - 您將需要爲清單中的服務適當的意圖過濾器) - 看到了Android services guide有關信息。

2

this excellent blog post看看如何在Android上實現自定義帳戶類型。您的所有應用程序都可以訪問在手機上創建的單一帳戶。每個應用程序都應該實施帳戶創建所需的活動,以便向所有用戶提供註冊和登錄過程。