Dropbox oauth窗口无法正常工作

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

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

控制台中显示以下消息:

The Content-Security-Policy directive ‘worker-src’ is implemented behind a flag which is currently disabled.

《Dropbox oauth窗口无法正常工作》

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

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

Dropbox oauth view is not rendering properly

更新:

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

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

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

最佳答案 发生这种情况是因为BrowserWindow默认启用了nodeIntergration标志.这与捆绑Dropbox的RequireJS实现冲突.

所以解决方案是在创建浏览器窗口时禁用nodeIntergration:

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

win.loadURL(link);

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

点赞