Firebase OAuth禁止第三方应用程序的Web视图上的用户代理

w6lpcovy  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(142)

我在进行OAuth身份验证时遇到了问题。问题是,OAuth身份验证在正常的浏览器上运行正常,但在第三方应用程序的Web视图上却不起作用,比如Line或Facebook的Messenger。发生的事情是在第三方应用程序的Web视图上,当用户点击“登录到谷歌”时,谷歌会立即显示错误页面403错误:“DISALOWED_USERAGENT”。(当我试图通过Messenger将指向我的Web应用程序的链接发送给我的朋友时,就会发生这种情况。当我的朋友点击链接时,Messenger会在他们的Web视图中打开我的Web应用程序。我的朋友届时将无法单击登录)

因此,我做了一些搜索,发现谷歌已经不推荐通过Web视图进行OAuth身份验证。这是LINK

所以我的问题是:如果检测到Web查看,是否可以强制用户打开正常浏览器?或者有什么方法可以解决这个问题?

为此,我使用了Firebase身份验证。我的所有代码都使用Firebase SDK进行身份验证Firebase-auth.js和Firebase.js)

vqlkdk9b

vqlkdk9b1#

谷歌限制来自Webview和iframe的身份验证,它允许Safari WebKit。如果您用Safari用户代理覆盖用户代理,则它将工作。一旦奏效,就试一试

webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
oknwwptz

oknwwptz2#

您尝试过Google API设置吗?
如果您想使用Google Login,您需要在Google API控制台中设置OAuth。

https://developers.google.com/identity/protocols/oauth2/openid-connect

相关问题