我正在尝试使用react-router在Electron应用程序中实现oauth 1.0a流程。这是oauth服务器请求的代码。
const postBody = {
url: https://oauthserver,
headers: {
'Access-Control-Allow-Origin': '*'
},
oauth: {
callback: url.format({
pathname: 'C:/oauth',
protocol: 'file:',
slashes: true
}),
consumer_key: config.get('consumerKey'),
consumer_secret: config.get('consumerSecret')
}
};
return request.post(postBody).then(data => {
const requestToken = qs.parse(data);
config.set('oauthTokenSecret', requestToken.oauth_token_secret);
config.set('oauthToken', requestToken.oauth_token);
return requestToken;
});
此回调将在新的authWindow中进行,该authWindow将在此处打开,
exports.openOauthWindow = token => {
const authWindow = new BrowserWindow({
width: 600,
height: 800,
webPreferences: { webSecurity: false }
});
authWindow.loadURL('https://oauthserver.com/Begin?oauth_token=' + token, {
extraHeaders: 'Access-Control-Allow-Origin: "*" \nmode: "no-cors"'
});
authWindow.webContents.on('will-navigate', (e, newURL) => {
console.log('NEW URL');
console.log(newURL);
});
return authWindow;
};
但我在authWindow中得到'不允许加载本地资源'错误。如果我使用我在网络应用中使用的“https://localhost:8080”重定向,则authWindow会获得原始的“chromewebdata”网址。
如何正确地做到这一点的任何想法将不胜感激。