在移动浏览器上通过 AngularFire 登录 Google 时出现错误“403 disallowed_useragent”

问题描述 投票:0回答:2

我正在 angular4 中使用 angularfire2 v4.0.0-rc.2 开发一个项目并将其发布到 firebase 上。

通过 facebook 和 google 登录均可在桌面浏览器和本机 Android 应用程序上运行。

当我尝试通过手机浏览器登录 chrome 时,出现以下错误: enter image description here

我发现很多关于 google 阻止 webView 访问的帖子,但没有一个给出关于如何在没有非 Firebase 特定解决方法的情况下解决问题的真正答案。

使用带有弹出窗口和重定向的 Angularfire 登录会发生错误。

有什么想法吗?

angular firebase firebase-authentication angularfire2
2个回答
4
投票

我在 Google 登录(实际上还有 Facebook 登录)方面也遇到了类似的问题。

具体来说,当有人在 Facebook Messenger 应用程序(iOS 和 Android)中共享链接并使用应用内浏览器单击该链接时,我会收到相同的 403 错误。

我找到的最佳解决方法是检测用户代理 (

navigator.userAgent
) 并查看它是否在字符串中包含“Messenger”,然后显示一条消息,要求他们在普通浏览器中打开。

如果有一种方法可以让这些存在此问题的应用内浏览器正常工作,或者可以在普通浏览器中打开而不需要用户找到该功能,那就更好了。

if (window.navigator.userAgent.includes('Messenger')) {
  console.log('User agent includes Messenger');
} else {
  console.log('User agent does not include Messenger');
}

0
投票

我必须将

signInWithRedirect
替换为
signInWithPopup
然后我就能够 手机浏览器登录

© www.soinside.com 2019 - 2024. All rights reserved.