【问题标题】:Electron app with Facebook SDK带有 Facebook SDK 的电子应用程序
【发布时间】:2016-09-25 14:22:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: electron


    【解决方案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

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

    【讨论】:

    • 在这种情况下我可以使用我自己的重定向网址吗?我想知道为什么“这必须设置为”特定的 facebook 成功页面?
    【解决方案2】:

    Khanetor。

    你需要将webPreferences.webSecurity设置为false,请看下面的sn-p:

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

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

    【讨论】:

    • 是的,可以让 facebook auth url 重定向回 l​​ocalhost 地址。基本上,您添加指向该 url 的“登录”按钮,并在验证 ir 后将用户重定向回 l​​ocalhost。
    • 我在使用<webview> 时需要添加allowpopups disablewebsecurity 以使其工作
    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2011-07-31
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多