我正在 angular4 中使用 angularfire2 v4.0.0-rc.2 开发一个项目并将其发布到 firebase 上。
通过 facebook 和 google 登录均可在桌面浏览器和本机 Android 应用程序上运行。
当我尝试通过手机浏览器登录 chrome 时,出现以下错误:
我发现很多关于 google 阻止 webView 访问的帖子,但没有一个给出关于如何在没有非 Firebase 特定解决方法的情况下解决问题的真正答案。
使用带有弹出窗口和重定向的 Angularfire 登录会发生错误。
有什么想法吗?
我在 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');
}
我必须将
signInWithRedirect
替换为 signInWithPopup
然后我就能够
手机浏览器登录