Facebook SDK的电子应用程序

时间:2015-12-27 08:50:24

标签: electron

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

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

    • 对于第一个问题,在开发模式下我通过dev-server(webpack)提供html,所以我可以通过使用localhost:3000作为重定向URI来欺骗。但是,我不知道如何在生产中发布此应用程序。
    • 对于第二个问题,我尝试安装[电子饼干模块[(https://www.npmjs.com/package/electron-cookies),但问题仍未解决。

2 个答案:

答案 0 :(得分:2)

Khanetor。

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

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

我现在正在Electron内部进行Facebook认证,在克服饼干问题之后还有另一个问题需要处理 - 登录,Facebook打开新窗口,一旦你登录它就会将postMessage发送到其他窗口并关闭。但是postMessages在Electron中的工作方式与在普通浏览器中的工作方式不同。

答案 1 :(得分:1)

如果您不需要,请不要使用localhost。请关注FB的文档:

REDIRECT_URI。要将登录人员重定向到的URL。此URL将捕获“登录”对话框的响应。如果您在桌面应用中的Web视图中使用此功能,则必须将其设置为https://www.facebook.com/connect/login_success.html。您可以通过转到应用程序仪表板,单击右侧菜单中的Facebook登录,然后选中客户端OAuth设置部分中的有效OAuth重定向URI来确认是否为您的应用设置了此URL。

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

编辑:如果你有更多的问题要求,我已经完成了这项工作。