Google 不再允许嵌入 Web View ,因为它是 OAuth 登录的 disallowed_useragent
。对于大多数情况,这完全没问题,并且有一个解决方法。但是,我遇到过这样的情况:这会阻止网站使用 Web 服务器 OAuth 实现。
问题:
Nginx PHP 服务器运行 Google PHP SDK,使用其 O-Auth 实现。除了嵌入浏览器之外,这对所有东西都适用。通常这是可以的,但是,如果用户尝试在使用嵌入式浏览器的应用程序中注册我们的网站,我们会收到 disallowed_useragent
错误(请参见底部图片)。这在 Android Facebook Messenger 中似乎不是问题,但可以在 iPhone 7 Plus Facebook Messenger 上复制。
当前研究:
我试图寻找明确的解决方法。例如。强制链接在主要手机浏览器(例如 Safari 应用程序)中打开的方法,但所有实现都指向应用程序端修复,而这无法从网站完成。
问题:
当某些用户可能使用这些嵌入式浏览器时,如何实现 Google Oauth,而不需要用户采取额外的手动操作(例如在 Safari/Chrome 中打开)?
最佳答案
这个问题非常基于意见,但我会给你我的意见。
How should I implement Google Oauth when some users may be using these embedded browsers, without making the user to take an extra action?
你真的不能。如果有人使用 Facebook Messenger 中的嵌入式浏览器(嵌入式浏览器)来打开您的身份验证链接,则该链接将不起作用。据我所知,没有办法强制或超越 Facebook Messenger 或任何其他使用其自己的嵌入式浏览器的应用程序。同样,这只是我的观点,但有很多应用程序已经开始强制用户使用这些嵌入式浏览器。人们可能会质疑它们的安全性如何,最好使用真正安装的浏览器。您认为这就是 Google 启用此功能的原因吗?
I would like to avoid going down the road of detecting the user-agent web-side and force the user to open the link in Safari.
我不知道这对我来说听起来是一个相当不错的解决方案。可能感觉有点过度杀戮,但如果它有效,那就去做吧。
关于php - 适用于嵌入式浏览器中网站的 Google OAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42640820/