我将我的应用程序移植到Electron,我很惊讶地发现Dropbox身份验证在这种环境中不起作用。它确实可以在Chrome中使用。
登录按钮保持禁用状态,标签显示在输入上方。
控制台中显示以下消息:
Content-Security-Policy指令' worker-src'在目前被禁用的标志后面实现。
我在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页面的问题仍然存在。
答案 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