Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何避免使用来自Google的OAuth回调的“完整操作”弹出窗口?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用OpenID Connect和OAuth,我想支持多个OpenID提供程序(因此不仅仅是AccountManager已知的提供程序).但是,我遇到了这个问题.

在将Google作为已安装的应用程序进行身份验证时,您会将回调地址(由Google预先定义)传递给http:// localhost.所以,我通过重定向到Google的终点来启动OAuth流程,如下所示:

String url = "https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&state=%2F&redirect_uri=http%3A%2F%2Flocalhost%3A9999&response_type=code&client_id=000000000000000.apps.googleusercontent.com";
Intent i = new Intent (Intent.ACTION_VIEW);
i.setData (Uri.parse (url));
startActivity (i);

请注意,我根据需要传递了redirect_uri(端口9999,允许).我已经注册了我的应用程序来响应这种类型的地址被加载如下:

<data android:scheR_723_11845@e="http" android:host="localhost" android:port="9999" />

但是,这会导致系统显示“完成操作”对话框:

因此,由于没有任何内容正在侦听手机的端口9999,如果用户选择浏览器,浏览器将显示错误页面,整个身份验证流程将被破坏.

我怎么能避免这个?

解决方法

尝试使重定向网址具有不同的方案,例如应用://本地主机.所有浏览器都注册httphttps的处理程序,因此部分问题无法解决.但是,如果重定向URL可以具有非标准方案,则您的问题变得易于解决.发明你自己的方案并使用它(许多应用程序这样做,Facebook有fb://链接).

大佬总结

以上是大佬教程为你收集整理的android – 如何避免使用来自Google的OAuth回调的“完整操作”弹出窗口?全部内容,希望文章能够帮你解决android – 如何避免使用来自Google的OAuth回调的“完整操作”弹出窗口?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。