在没有Google Play服务合并的情况下为oAuth Google使用webview的替代方案

Shr*_*agi 8 android webview oauth-2.0 google-oauth

我们的自定义设备可在Android操作系统上运行,但未包含Google Play服务.
我们使用Webview Oauth2.0身份验证进行Google登录.根据文件,它已被删除.
我读到有一种方式https://developers.google.com/identity/sign-in/android/,但这似乎需要gradle合并游戏服务.
那么我可以使用哪种方式进行谷歌身份验证?
我找到了两个选项如下,但它们对我的情况有帮助吗?
1. https://firebase.google.com/docs/auth/android/start/
2. https://developers.google.com/api-client-library/java/google-api-java-client/oauth2

哪个可能是最适合我的要求
请帮助.
此致,
Shraddha

R. *_*ski 5

是的,确实谷歌很久以前已经阻止了通过应用程序内部登录它的服务的可能性WebView.原因是Google不信任外部应用程序提供商,因为它不了解连接的安全性.它迫使外部应用程序提供商使用Google的方法登录其服务.

来源:在Native Apps中实现OAuth交互的现代化,以提高可用性和安全性

事实上,您已找到使用Google服务的正确方法,但FirebaseGoogle Sign In的劣势使您可以使用它们,即两者都需要Google Play服务.Firebase需要它们,Google登录需要它们.因此,在没有Google Play服务的设备上使用这两种设备都没有正式的方法.

还有另一种方法:Chrome自定义标签.但是,它们需要在设备上安装Chrome.而且很长一段时间它也使用Google Play服务.此外,Chrome自定义标签的引入晚于Chrome已合并Google Play服务

然而,有一个黑客.将应用程序的内部WebView用户代理声明为Chrome.这是文档.如本页底部所示,您可以从WebView用户代理字符串中删除以下字符串:

  • Version/_X.X_ 在Kitkat设备上
  • wv 在Lollipop +设备上.

但是,如果有可能,我不建议采用这种方法并且鼓励坚持使用Google政策.

希望这个解释就足够了.

编辑: 根据下面的评论,Goole Api Java客户端不需要Google Play服务,因此这可能是一个选项.

  • 谢谢.但是我们如何获得令牌并授权用户? (3认同)