Xamarin表示Google Authenticateion,错误:disallowed_useragent

时间:2017-08-18 07:09:24

标签: c# .net xamarin xamarin.forms google-authentication

目前我正在开发Xamarin Forms应用程序,我添加了Google身份验证。 这是我在PCL的代码:

var authenticator = new OAuth2Authenticator(
    clientId,
    null,
    Constants.Scope,
    new Uri(Constants.AuthorizeUrl),
    new Uri(redirectUri),
    new Uri(Constants.AccessTokenUrl),

    null,
    true);

authenticator.Completed += this.OnAuthCompleted;
authenticator.Error += this.OnAuthError;

AuthenticationState.Authenticator = authenticator;

var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();
presenter.Login(authenticator);

我使用的是Xamarin.Auth的最新版本,1.5.0.3 这是我收到的:Screenshot

我浏览了很多文章和代码示例,但看起来谷歌可能再次更新了他们的身份验证。 Link 1Link 2Link 3Link 4。 Xamarin.Forms示例的官方页面上的事件无效且无效{。{3}}。

我检查了几个代码示例,但再次没有成功,Link 5和多个样本Sample 1。我下载源代码并尝试使用它,期望它正常工作,但它们也失败了。

您是否有解决此问题或任何文章的解决方案,这是最新的并且您知道它正在运行。代码示例也很棒。

提前致谢!

1 个答案:

答案 0 :(得分:3)

在Android上,由于安全原因,Google要求现在使用Chrome Custom Tabs而不是WebView

如果您运行的是未安装Chrome的模拟器(或设备)(从OEM或通过Play商店预安装),则Xamarin.Auth将默认使用WebView。谷歌将在世界某些地区接受这一点(即设备OEM可能无法预装Chrome的中国),否则Google将通过WebView错误拒绝disallowed_useragent个客户。

如果您正在运行GenyMotion模拟器,请通过Play商店安装Chrome。如果您没有安装Play商店,请安装GApps(通过http://opengapps.org