2013-12-07 15 views
0

我想將應用程序帳戶鏈接到Google。幾乎每個Android用戶都有一個GMail帳戶。所以,我讀出的帳戶:使用Android檢查Google的登錄數據?

private String[] getAccountNames(){ 
    mAccountManager = AccountManager.get(this); 
    Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); 
    String[] names = new String[accounts.length]; 
    for (int i=0;i<names.length;i++){ 
     names[i] = accounts[i].name; 
     Toast.makeText(this, accounts[i].name, Toast.LENGTH_LONG).show(); 
    } 
    return names; 
} 

用戶可以選擇一個帳戶,並有進入驗證訪問此帳戶,並將其鏈接到應用程序的密碼。 如何檢查密碼是否正確?什麼是服務器來檢查登錄?如果登錄成功或不成功,我只需要回復(true或false)。

回答

0

你不應該要求用戶的Gmail密碼 - 這是非常不安全的,人們不喜歡把它給任何應用程序,它可以發送給任何人。另外,如果用戶使用2步驗證,您還需要處理這個問題 - 難以正確實施。

Insted,你應該問一個來自Android的身份驗證令牌。使用這些令牌,您可以從客戶端進行檢查(例如使用此URL:https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=[your-id-token-here])以及從您的服務器檢查這是用戶的帳戶。您可以在此博文閱讀更多關於這一點:http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html

0

你應該要求用戶許可,利用該得到令牌:用戶同意你的請求就上述電話後

GoogleAuthUtil.getToken(activity, account, "oauth2:https://www.googleapis.com/auth/userinfo.profile"); 

將返回一個令牌您可以使用代表用戶執行api調用。