为什么我的Google OAuth2登录可以正常运行,而无需考虑我的应用程序签名密钥库

时间:2019-03-06 09:36:36

标签: xamarin.android google-oauth xamarin.auth

在我们的应用中,我们正在使用Google Drive REST API。为了进行身份验证,我们使用具有以下配置的Xamarin.Auth

var authenticator = new OAuth2Authenticator(<our client ID>,
                                            null,
                                            "https://www.googleapis.com/auth/drive",
                                            "https://accounts.google.com/o/oauth2/v2/auth",
                                            <our redirect url>,
                                            "https://www.googleapis.com/oauth2/v4/token",
                                            null,
                                            true);

使用

显示登录名
var loginPresenter = new OAuthLoginPresenter();
loginPresenter.Login(authenticator);

(这不是实际的代码,因为授权封装在一个类中,并且注入了Authenticator和Presenter,但这基本上是我们正在做的事情)。

这将在浏览器中打开一个登录表单,并允许用户登录,从而导致该表单使用OAuth2令牌回调我们的应用程序。一切都像魅力一样。

我们的客户端ID是使用我们的调试密钥库的哈希值创建的。根据文档和其他问题(请参阅herehere),当使用不同的密钥库对应用程序进行签名时,这在发布配置中将不再起作用。无论如何,使用我们内部测试的AdHoc密钥库对应用程序进行签名后,登录表单仍然可以正常使用。其实我不知道应该怎么做。毕竟,我们要做的就是在系统浏览器控件中打开网站,因此我不明白该网站应该如何使我们的应用程序散列。

由于链接的问题缺少详细信息,因此我看不到它们与我们的情况有何不同,但我以某种方式假定Google OAuth做了一些魔术,以确保哈希匹配。有什么理由对我们有用吗?将其上传到Google Play后,我们可以期望它继续工作吗?还是存在停止工作的风险?

0 个答案:

没有答案