问题
I'm porting my application to Electron and I was surprised to find out that the Dropbox authentication doesn't work in this environment. It does work in Chrome though.
The sign-in buttons remain disabled and the labels appear over the inputs.
The following message is displayed in the console:
The Content-Security-Policy directive 'worker-src' is implemented behind a flag which is currently disabled.
I'm testing using dropbox@2.5.7, electron@1.7.7 on OS X.
I found a similar question, but it seems to use a different version of Electron and has a different error message:
Dropbox oauth view is not rendering properly
Update:
The Content-Security-Policy
message seems to be related to the Chrome version. The worker-src
directive was introduced in Chrome 59 and electron@1.7.7 is shipped with Chrome 58.
https://www.chromestatus.com/feature/5922594955984896
I've tested with electron@1.8.0 that comes with Chrome 59, and the console messages are gone. But the problem with the auth page remains.
回答1:
This happens because BrowserWindow
has the nodeIntergration
flag enabled by default. And this conflicts with the RequireJS
implementation with which Dropbox
was bundled.
So the solution would be to disable nodeIntergration
when creating the browser window:
const win = new electron.BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: false
}
});
win.loadURL(link);
Here's a small demo project: https://github.com/kenjiru/electron-dropbox-sample-app
来源:https://stackoverflow.com/questions/46124442/dropbox-oauth-window-is-not-working