【问题标题】:Third party authentication doesn't work from facebook browser第三方身份验证在 Facebook 浏览器中不起作用
【发布时间】:2022-10-20 23:06:21
【问题描述】:

我有一个 Web 应用程序(带有 Kotlin 后端的 React js),它具有普通的电子邮件 + pw(加上 PIN)登录,它还支持 3rd 方身份验证(Google 和 Facebook)。它适用于移动设备和网络,但是,当我通过 Facebook 应用程序打开我的网页时——它会打开它自己的浏览器——并尝试使用 3rd 方身份验证登录,我可以点击“以我身份继续”按钮,然后页面刷新,我没有登录。我在其他网站上也看到了同样的事情,例如Figma、Pinterest 等。我认为再也无法以这种方式登录了,但是,我只是注意到您实际上可以通过这种方式登录 Stackoverflow(所以 facebook 应用程序 -> facebook 浏览器 -> 堆栈溢出 -> 3rd 方身份验证和有用)。 有没有人知道 Stackoverflow 是如何做到这一点的?

【问题讨论】:

    标签: facebook google-signin facebook-login facebook-browser


    【解决方案1】:

    好的,我找到了解决方案。问题是,当用户单击我网站上的“使用 FB 登录”按钮时,我向 fb 发送了一个请求以取回登录窗口的内容,然后我创建了一个弹出窗口来渲染它,我放了一个那个弹出窗口上的监听器,一旦完成,然后我得到访问令牌并将其发送到后端并登录用户。在普通浏览器上它工作完美(PC和移动)但正如我上面提到的那样它没有不能在 Facebook 应用等应用内浏览器中工作。 问题是 facebook 应用程序在它自己的浏览器中打开了一个网站,该浏览器不处理任何弹出窗口,所以在成功验证后我发现什么也没发生,这是因为我们没有被重定向到我们应该拥有的原始窗口,并且它在 url 中有令牌。所以解决方案不是制作这个用于FB登录的弹出窗口,而是将用户重定向到fb登录页面(并保持在同一个窗口上),一旦登录成功,就按原样处理令牌。

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 2012-06-08
      • 2012-04-14
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 2015-08-21
      相关资源
      最近更新 更多