Dropbox oauth window 不工作

Dropbox oauth window is not working

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

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

控制台中显示以下消息:

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

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

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


更新:

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

一起提供

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

我用Chrome59自带的electron@1.8.0测试过,控制台消息没有了。但是授权页面的问题依然存在。

发生这种情况是因为 BrowserWindow 默认启用了 nodeIntegration 标志。这与捆绑 DropboxRequireJS 实现冲突。

因此解决方案是在创建浏览器时禁用 nodeIntegration window:

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

win.loadURL(link);

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