【问题标题】:Xamarin.Auth - Google authentication won't open in browserXamarin.Auth - Google 身份验证不会在浏览器中打开
【发布时间】:2018-10-04 03:14:59
【问题描述】:

我正在尝试使用 Xamarin.Auth 对我的 Android 应用程序进行身份验证。前段时间,Google 制定了一项政策,即您不能在嵌入式 Web 视图中执行此操作(出于完全正当的原因)。

我正在尝试在浏览器中打开帐户身份验证页面,但不断获取嵌入式 Web 视图。我了解isUsingNativeUI 需要在以下代码中为true

        _auth = new OAuth2Authenticator(clientId, string.Empty, scope,
                                        new Uri(Constant.AuthorizeUrl),
                                        new Uri(redirectUrl),
                                        new Uri(Constant.AccessTokenUrl),
                                        null,
                                        isUsingNativeUI = true);

在我的应用程序的每一点,这总是等于 true。

在其他地方,我有代码重定向到 应该 是浏览器:

        var authenticator = Auth.GetAuthenticator();
        Intent intent = authenticator.GetUI(this);
        this.StartActivity(intent);

无论如何,每当我尝试运行该项目时,我都会收到一个可怕的403 disallowed_useragent 错误。我还缺少其他元素吗?

据我所知,在构造函数中设置auth.IsUsingNativeUI = true 应该表明它必须在浏览器中打开。我一直在关注this 示例来尝试调试但没有成功。我什至把这个家伙的 repo 拉到我的机器上并运行它 - 重定向时的 Intent 变量几乎相同。

会不会有一些我错过的愚蠢的东西?还有什么问题?

【问题讨论】:

  • 您是否在没有安装 Chrome 的模拟器上进行测试?
  • @SushiHangover 是的,但是,对于我从帖子中链接的示例中提取的代码来说,这不是问题。我可以尝试安装它,但它对在同一个模拟器上运行的两个单独的代码块没有任何影响。
  • Chrome CustomTab 在 Android 平台上通过 X.Auth 使用,因此需要安装 Chrome,否则它将降级以使用 WebView 并因此出现 403 错误。这当然在大多数设备上通常不是问题,因为 G.Apps 是工厂安装的(现在有其他浏览器已经实现 CustomTab 我不确定 Xamarin.Auth 是否会使用它们,但我有我的拥有自己的身份验证库...)
  • @SushiHangover 你能解释一下为什么我提供的示例在没有安装 chrome 的情况下可以正常工作吗?
  • 假设您获得了安装在基本模拟器图像上的com.android.browser,它只是WebView 之上的一个shell(它是Android 的一部分)框架)。您可以通过将 Intent 传递给 PackageManager.QueryIntentActivities 来查看将要使用的包。如果您安装了 Chrome,它将返回 com.android.chrome、com.chrome.beta、com.chrome.dev 或 com.google.android.apps.chrome(取决于您从 Play 商店安装的内容)

标签: xamarin xamarin.forms google-authentication xamarin.auth


【解决方案1】:

我意识到这是一个老问题,但我遇到了同样的问题。

您必须安装 Xamarin.Auth Nuget 包的 1.5.0.3 版。最新的(现在是 1.7.0 版)不起作用。您还必须安装 PCLCrypto nuget 包才能使该版本正常工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-09-16
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 2014-12-13
  • 2018-09-27
  • 2021-12-21
相关资源
最近更新 更多