2016-07-25 51 views
-1

即時通訊使用azure移動服務的Xamarin形式。我正在使用它被開放使用的非安全服務。現在客戶端改變了服務端點,現在終端點是安全的,只有授權用戶才能訪問端點,所以現在使用Google帳戶登錄。我遵循了以下步驟: -request.Headers [「Authorization」] =「Bearer」+ accessToken;

  1. 使用Google帳戶登錄並收到訪問令牌。
  2. 在獲取請求標頭中傳遞訪問令牌。

request.Headers["Authorization"] = "Bearer " + accessToken;

響應: -

The remote server returned an error: (401) Unauthorized.

如果任何人有任何想法,請與我分享。

+0

我正在使用Google令牌向移動服務端點發送請求,我是否應該將Google令牌發送給Azure以進行身份​​驗證? –

回答

0

我不知道是否能解決你的問題,但在我的情況下,下面的代碼工作(與承載令牌,HttpClient和Xamarin.Forms)

// Set the authorization Header in httpclient 
DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "your-access-token"); 

側面說明:我有一個自己的實施API通信(僅從HttpClient繼承)

1

您無法直接使用Google令牌進行身份驗證。您將Google令牌換成ZUMO令牌,然後將ZUMO-AUTH頭添加ZUMO令牌的值。

我們通常假設您使用的是其中一個客戶端SDK。但是,由於您直接執行此操作,因此您需要自行構建請求。端點是/ login/google,POST主體應該是內容爲{"access_token","your-google-token"}的應用程序/ json。

兩條建議:1)使用客戶端SDK(您可以使用委託處理程序覆蓋HttpClient,並且很多這些東西都由您負責)。 2)升級到Azure移動應用程序(Azure移動服務今年正在關閉,所有客戶都正在轉換到Azure移動應用程序)。

+0

你說得對,請求將與x-zumo-auth標題一起工作,因爲昨晚我已經嘗試了同樣的事情。如: - request.Headers [「x-zumo-auth」] = accessToken; –