request.Headers [“Authorization”] =“Bearer”+ accessToken;

时间:2016-07-25 11:04:27

标签: c# xamarin.forms azure-mobile-services

我使用azure移动服务用于xamarin表单。我正在使用它打开使用的非安全服务。现在客户端更改了服务端点,现在端点是安全的,只有授权用户才能访问端点,所以现在我使用Google帐户登录。我遵循了以下步骤: -

  1. 使用Google帐户登录并收到访问令牌。
  2. 在get请求标头中传递访问令牌。
  3.   

    request.Headers [“Authorization”] =“Bearer”+ accessToken;

    响应: -

      

    远程服务器返回错误:(401)未经授权。

    如果有任何人有任何想法请与我分享。

2 个答案:

答案 0 :(得分:1)

您无法使用Google令牌直接进行身份验证。您将Google令牌交换为ZUMO令牌,然后使用ZUMO令牌的值添加X-ZUMO-AUTH标头。

我们通常假设您使用的是其中一个客户端SDK。但是,由于您是直接执行此操作,因此您需要自己构建请求。端点是/ login / google,POST主体应该是内容为{"access_token","your-google-token"}的application / json。

两个建议:1)使用客户端SDK(您可以使用委派处理程序覆盖HttpClient,并且很多这些东西都会为您处理)。 2)升级到Azure移动应用程序(今年Azure移动服务正在关闭,所有客户都将转换到Azure移动应用程序)。

答案 1 :(得分:0)

我不确定这是否能解决您的问题,但在我的情况下,代码工作(使用持票人令牌,HttpClient和Xamarin.Forms)

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

旁注:我有一个自己的API通信实现(它只是继承自HttpClient

相关问题