我正在将我的应用程序移植到 Electron,我惊讶地发现 Dropbox 身份验证在此环境中不起作用。不过它在 Chrome 中确实有效。
登录按钮保持禁用状态,并且标签出现在输入上方。
控制台中显示以下消息:
Content-Security-Policy 指令“worker-src”是在当前禁用的标志后面实现的。
我正在测试使用[电子邮件受保护] /cdn-cgi/l/email-protection, [电子邮件受保护] /cdn-cgi/l/email-protection在 OS X 上。
我发现了一个类似的问题,但它似乎使用了不同版本的 Electron 并且有不同的错误消息:
Dropbox oauth 视图未正确呈现 https://stackoverflow.com/questions/43049634/dropbox-oauth-view-is-not-rendering-properly
Update:
The Content-Security-Policy
消息似乎与 Chrome 版本有关。这worker-src
Chrome 59 中引入了指令[电子邮件受保护] /cdn-cgi/l/email-protection随 Chrome 58 一起提供。
https://www.chromestatus.com/feature/5922594955984896 https://www.chromestatus.com/feature/5922594955984896
我测试过[电子邮件受保护] /cdn-cgi/l/email-protectionChrome 59 附带的,控制台消息消失了。但身份验证页面的问题仍然存在。
发生这种情况是因为BrowserWindow
有nodeIntegration
默认情况下启用标志。这与RequireJS
实施与其中Dropbox
被捆绑了。
所以解决方案是禁用nodeIntegration
创建浏览器窗口时:
const win = new electron.BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: false
}
});
win.loadURL(link);
这是一个小型演示项目:https://github.com/kenjiru/electron-dropbox-sample-app https://github.com/kenjiru/electron-dropbox-sample-app
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)