我正在尝试在我的 Xamarin Forms 应用程序中使用 Google 身份验证,方法是使用 Xamarin.Auth 执行客户端身份验证,然后将接收到的令牌传递给配置为使用 Google 身份验证的 Azure 应用服务自定义网站后端。
我从客户端上的 Xamarin.Auth 取回令牌就好了。但是,当我尝试使用 MobileServiceClient 的 LoginAsync 方法时,我得到一个异常,上面写着:
Newtonsoft.Json.JsonReaderException:解析值时遇到意外字符:<。路径 '',第 0 行,第 0 位置。
我发现了这篇文章: Xamarin MobileServiceClient RefreshUserAsync with Google 403,其中 rleffler 显然有这个工作,但我认为我不能直接向他发送消息。
这是我调用 LoginAsync 的代码:
MobileServiceClient client = new
MobileServiceClient("http://<mywebsite>.azurewebsites.net");
var zumoPayload = new JObject();
zumoPayload["access_token"] = accessToken;
zumoPayload["id_token"] = idToken;
if (user == null)
{
string message;
try
{
user = await client.LoginAsync(MobileServiceAuthenticationProvider.Google, zumoPayload);
message = string.Format("You are now logged in - {0}", user.UserId);
}
catch (Exception ex)
{
//This is where I catch the JsonReaderException
message = "You must log in. Login Required";
}
}