2016-07-25 14 views
-1

xamarinフォームのためにazureモバイルサービスを使用しています。私は使用するために開かれた安全でないサービスを使用していました。クライアントがサービスのエンドポイントを変更しました。エンドポイントが保護されているのは、許可されたユーザーだけがエンドポイントにアクセスできるため、今はGoogleアカウントでログインしています。私はステップを踏んだ: -request.Headers ["Authorization"] = "ベアラ" + accessToken;

  1. Googleトークでログインし、アクセストークンを受け取った。
  2. get requestヘッダーにアクセストークンを渡します。

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

応答: - 誰もが任意のアイデアを持っている場合は

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

は私と一緒に共有してください。

+0

Googleトークンを使用してモバイルサービスのエンドポイントにリクエストを送信しました。認証のためにGoogleトークンを空白に送信する必要がありますか? –

答えて

0

サイドノート

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

私は、これはあなたの問題を解決するかどうかわからないが、私の場合は、次のコードは(、ベアラトークンでHttpClientとXamarin.Forms)作品:私はのための独自の実装を持っていますAPI通信(ちょうどHttpClientから継承)

1

Googleトークンを直接使用して認証することはできません。 GoogleトークンをZUMOトークンに置き換えて、ZUMOトークンの値をX-ZUMO-AUTHヘッダーに追加します。

通常、クライアントSDKの1つを使用していると想定しています。しかし、これを直接行っているので、自分でリクエストを作成する必要があります。エンドポイントは/ login/googleで、POST本体は内容が{"access_token","your-google-token"}のapplication/jsonでなければなりません。

2つの推奨事項:1)クライアントSDKを使用します(委任ハンドラを使用してHttpClientをオーバーライドすることができ、多くのものがあなたのために処理されます)。 2)Azure Mobile Appsへのアップグレード(今年はAzure Mobile Servicesが閉鎖され、すべての顧客はAzure Mobile Appsに移行中)

+0

あなたはそうです、昨夜私は同じことを試みたので、リクエストはx-zumo-authヘッダーで動作します。次のようにします: - request.Headers ["x-zumo-auth"] = accessToken; –