Dropbox oauth窗口无法正常工作

时间:2017-09-08 20:57:41

标签: oauth electron dropbox-api

我将我的应用程序移植到Electron,我很惊讶地发现Dropbox身份验证在这种环境中不起作用。它确实可以在Chrome中使用。

登录按钮保持禁用状态,标签显示在输入上方。

控制台中显示以下消息:

  

Content-Security-Policy指令' worker-src'在目前被禁用的标志后面实现。

Console messages

我在OS X上使用dropbox@2.5.7,electron@1.7.7进行测试。

我发现了一个类似的问题,但它似乎使用了不同版本的Electron并且有不同的错误消息:

Dropbox oauth view is not rendering properly

更新

Content-Security-Policy消息似乎与Chrome版本有关。 {59}引入了worker-src指令,Chrome 58附带了electron@1.7.7。

https://www.chromestatus.com/feature/5922594955984896

我已经使用Chrome 59附带的electron@1.8.0进行了测试,并且控制台消息已经消失。但是auth页面的问题仍然存在。

1 个答案:

答案 0 :(得分:1)

这是因为BrowserWindow默认启用了nodeIntergration标记。这与RequireJS捆绑的Dropbox实施相冲突。

因此解决方案是在创建浏览器窗口时禁用nodeIntergration

const win = new electron.BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
        nodeIntegration: false
    }
});

win.loadURL(link);

这是一个小型演示项目: https://github.com/kenjiru/electron-dropbox-sample-app