由于嵌入式浏览器,Android Facebook 共享对话框阻止登录

如何解决由于嵌入式浏览器,Android Facebook 共享对话框阻止登录

我正在使用 cordova-plugin-facebook-connect 插件从 Facebook 启动共享对话框。 iOS 运行良好,Android 在安装应用后运行良好。

在 Android 上,如果应用未安装,它会尝试与嵌入式网络浏览器共享。输入我的电子邮件和密码后,我收到一条错误消息,指出从嵌入式浏览器登录 Facebook 已被禁用。我使用的是最新版本的插件,这应该意味着最新的 Facebook Android SDK

Error Message after entering password and email

我查看了我们的业务仪表板并确保允许嵌入式登录

embeded browser OAuth Login enabled

...但这提到了 OAuth,所以也许它不相关。我已将调试和生产密钥哈希上传到仪表板

我在 Facebook 文档中没有找到任何内容,也没有从 Facebook 开发者社区得到答复。

总结:

如果安装了该应用程序,则一切正常。没有该应用程序,它使用嵌入式浏览器,但 Facebook 阻止了登录。我很想知道为什么以及如何启用它。

更新:使用 Facebook 生成的测试用户工作

干杯

解决方法

我无法评论(还)所以我创建这个答案是为了询问您是否可以尝试删除所有(!)本地浏览器数据,即 Cookie 和本地存储等。这是第一件事当我读到“与另一个登录一起工作”时,我想到了。

,

尝试安装其他浏览器,例如 Firefox,并将其设置为默认浏览器,然后使用您的 Facebook 凭据再次登录。它对我有用。我想问题出在 chrome 上。对我来说,当我将 Firefox 设置为默认浏览器时,它就起作用了。

,

Facebook 已经让所有人知道他们正在弃用对 Android 嵌入式浏览器上的 FB 登录的支持:

https://developers.facebook.com/blog/post/2021/06/28/deprecating-support-fb-login-authentication-android-embedded-browsers/

截至目前,他们正在屏蔽 High Risk 位出现此错误的用户,并将从 8 月开始屏蔽所有用户。他们的建议是使用更高版本的 SDK (8.2+) 来避免这种情况

,

如果用户通过 Facebook 启用了 2 因素身份验证,则问题得到解决。 我现在已经与多个真实用户进行了测试,例如启用 sms-2fa 确实使用户能够使用嵌入式浏览器登录应用程序。如果用户在同一设备上安装了 facebook 应用程序并且已经使用 2fa 登录了 facebook 应用程序,则登录会像往常一样发生。否则,facebook 将在登录时请求 2fa,但可以再次登录。

然而,我发现如果在装有 facebook 应用程序的手机上激活 2fa 之前打开某些应用程序,它们似乎会崩溃,并且这些应用程序需要重新启动才能再次尝试登录。

由此我们可以假设 facebook 由于其风险评估而阻止了嵌入式浏览器。 2fa 专门作为在每个用户的安全选项中通过不安全的浏览器登录的选项而专门提供,遗憾的是,对于在其应用中使用嵌入式浏览器的人来说,这似乎不是问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?