【发布时间】:2017-05-24 11:32:23
【问题描述】:
我是 xamarin android 的新手。我正在尝试使用 Google 作为身份提供者在 xamarin android 中实现 OAuth。我已经在谷歌注册了我的应用程序,并获得了我在用户点击登录按钮时使用的客户端 ID 和客户端密码,如下所示。
void OnLoginClicked(object sender, EventArgs e)
{
var authenticator = new OAuth2Authenticator(
Constants.ClientId,
Constants.ClientSecret,
Constants.Scope,
new Uri(Constants.AuthorizeUrl),
new Uri(Constants.RedirectUrl),
new Uri(Constants.AccessTokenUrl));
authenticator.Completed += OnAuthCompleted;
authenticator.Error += OnAuthError;
var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();
presenter.Login(authenticator);
}
它重定向到谷歌,但给出 403 错误为“disallowed_useragent”。 根据this,谷歌“不再允许在称为网络视图的嵌入式浏览器中向谷歌发出 OAuth 请求”
在浏览了一些论坛和 stackoverflow 问题后,我知道需要使用
chromecustomtabs。
所以我有两个问题
chromecustomtabs 是否有替代解决方案?
如果上面的答案是否定的,那么如果我理解正确,那么我需要在我的项目中添加以下代码。我的问题是 OnLoginClicked 函数需要做哪些修改?在这种情况下是否需要 OAuth2Authenticator?
我的代码:
var mgr = new CustomTabsActivityManager (this);
mgr.CustomTabsServiceConnected += delegate {
mgr.LaunchUrl ("http://xamarin.com");
};
mgr.BindService ();
任何建议/链接将不胜感激。谢谢。
【问题讨论】:
标签: c# webview xamarin.android google-oauth