带有 Facebook SDK 的 Electron 应用

Electron app with Facebook SDK

我的电子应用程序需要 Facebook 登录。但是我面临两个问题:

  1. Facebook 需要 OAuth 重定向 URI,该 URI 在桌面应用程序的上下文中不存在。
  2. Facebook 登录需要 cookie。

    • 对于第一个问题,在开发模式下,我通过开发服务器 (webpack) 为 html 提供服务,因此我可以通过使用 localhost:3000 作为重定向 URI 来作弊。但是,我不知道如何在生产环境中发布此应用程序。
    • 第二个问题,我尝试安装这个[electron-cookies模块[(https://www.npmjs.com/package/electron-cookies),但是问题没有解决

Khanetor.

您需要将 webPreferences.webSecurity 设置为 false,请参阅下面的代码片段:

mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    frame: true,
    webPreferences: {
        webSecurity: false,
        plugins: true
    }
});

我现在自己在 Electron 中进行 Facebook 身份验证,在克服 cookie 问题之后还有另一个问题需要处理 - 登录,facebook 打开新的 window 一旦你登录它就会发送 postMessage 给其他 windows 并关闭。但是 postMessages 在 Electron 中的工作方式与在普通浏览器中的工作方式不同..

如果不需要,请不要使用本地主机。请改用 FB 的文档:

redirect_uri。 URL 您要将登录的人重定向回。此 URL 将捕获来自登录对话框的响应。如果您在桌面应用程序的网络视图中使用它,则必须将其设置为 https://www.facebook.com/connect/login_success.html。您确认已为您的应用程序设置此 URL,方法是转到应用程序仪表板,单击右侧菜单中的 Facebook 登录,然后检查客户端 OAuth 设置部分中的有效 OAuth 重定向 URI。

(1) https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow

编辑:我完成了这项工作,如果您有更多问题,请提出。