2016-08-16 74 views
1

我目前對如何繼續使用我的應用程序感到茫然。 我目前正在按照教程進行身份驗證,並且一切都很順利。 Azure Mobile Apps AuthenticationAzure移動應用程序 - Android身份驗證獲取更多信息

我無所適從的是如何使用在此過程之後存儲的id和/或令牌來獲取基本配置文件信息,例如用戶電子郵件或其個人資料照片。 從我在網上閱讀這只是一個azureId存儲不是谷歌配置文件ID,我會用谷歌+ APIS。

有沒有人有一個參考,顯示新手程序員如何獲得使用谷歌API所需的電子郵件地址或userId。 我能找到的唯一參考資料是2014年的博客文章。當然必須有一個更簡單的方法。還有一個專門針對移動應用而不是移動服務的文章。 Blog post describing how to expand on authentication with google on mobile services which is no use

這裏是我的過程

// We first try to load a token cache if one exists. 
    Log.v(TAG, "Click"+USERIDPREF); 
    if (loadUserTokenCache(mClient)) 
    { 
     Log.v(TAG, "table" +mClient.getCurrentUser().toString()); 
     createTable(); 
     returnHome(); 
    } 
    // If we failed to load a token cache, login and create a token cache 
    else 
    { 
     // Login using the Google provider. 
     final ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google); 
     Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() { 
      @Override 
      public void onFailure(Throwable exc) { 
       Log.v(TAG, "Login On fail " +exc.getMessage()); 
      } 
      @Override 
      public void onSuccess(MobileServiceUser user) { 
       Log.v(TAG, "On Success"); 
       createTable(); 
       cacheUserToken(mClient.getCurrentUser()); 
       Log.v(TAG, "On Success" + mClient.getCurrentUser()); 
       returnHome(); 
      } 
     }); 
    } 
+0

從2014年引用的帖子很舊,應該忽略。它正在討論已棄用的移動服務,而現在您正在使用移動應用程序。 –

+0

我改變了我剛剛收錄的標題,所以人們不會認爲我的解決方案只是Google搜索。 –

回答

1

你貼有答案的第一個文檔鏈接。 From https://azure.microsoft.com/en-us/documentation/articles/app-service-authentication-overview/#working-with-user-identities-in-your-application

用任何語言或框架編寫的代碼都可以從這些頭文件中獲取所需的信息。對於ASP.NET 4.6應用程序,ClaimsPrincipal自動設置爲適當的值。

您的應用程序還可以通過您的應用程序的端點/.auth/me上的HTTP GET獲取更多用戶詳細信息。 包含的有效令牌將返回一個JSON有效負載,其中包含有關正在使用的提供程序,底層提供程序令牌和其他一些用戶信息的詳細信息。移動應用程序服務器SDK提供使用此數據的幫助器方法。有關更多信息,請參見How to use the Azure Mobile Apps Node.js SDKWork with the .NET backend server SDK for Azure Mobile Apps

所以總結一下,你必須根據不同的選項上的語言使用,但最跨平臺的選擇是發送一個驗證請求您的移動應用/.auth/me端點。您將返回一個JSON對象,其中包含一堆用戶聲明(名稱,提供商特定的ID,電子郵件等)。

+0

HI chris,通過向/.auth/me端點發出請求u意味着我在azure門戶授權標籤中設置的變量是否正確?以及您認爲值是android客戶端sdk returnsthe getUserId()在.net後端? –

+0

對不起,我不知道你指的是什麼變量。您不需要在門戶中執行或引用任何內容。您從字面上只需要從您的應用程序代碼中向https:// {host} /.auth/me發送經過身份驗證的HTTP GET請求。 –

+0

所以說例如其https://appservicename.azurewebsites.net/.auth/me我回來的是「你正在尋找的資源已被刪除,名稱已更改,或暫時不可用」。 –

相關問題