电子oauth回调

时间:2017-10-19 14:57:43

标签: reactjs oauth electron

我正在尝试使用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”网址。

如何正确地做到这一点的任何想法将不胜感激。

0 个答案:

没有答案