Xamarin.android 为什么我的Google OAuth2登录可以工作,而忽略了我的应用程序签名密钥库

Xamarin.android 为什么我的Google OAuth2登录可以工作,而忽略了我的应用程序签名密钥库,xamarin.android,google-oauth,xamarin.auth,Xamarin.android,Google Oauth,Xamarin.auth,在我们的应用程序中,我们使用的是Google Drive REST API。为了进行身份验证,我们使用以下配置的Xamarin.Auth var authenticator = new OAuth2Authenticator(<our client ID>, null, "https://www.googlea

在我们的应用程序中,我们使用的是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);
(这不是实际的代码,因为授权被封装在一个类中,身份验证器和演示者被注入,但基本上这就是我们正在做的事情)

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

我们的客户机ID是使用调试密钥库的哈希创建的。根据文档和其他问题(请参阅和),当应用程序使用不同的密钥库进行签名时,在版本配置中这应该停止工作。无论如何,在使用我们的内部测试临时密钥库签署应用程序后,登录表单仍然可以正常工作,没有任何问题。其实我不明白怎么不应该。毕竟,我们所做的只是在系统浏览器控件中打开一个网站,因此我不明白该网站应该如何获得我们的应用程序哈希

由于链接的问题缺乏细节,我看不出它们与我们的情况有什么不同,但我不知何故假设GoogleOAuth会使用一些黑魔法来确保哈希匹配。这对我们有用吗?我们能期望它在上传到Google Play后继续工作吗?或者它有停止工作的风险吗

var loginPresenter = new OAuthLoginPresenter();
loginPresenter.Login(authenticator);