Reactjs 如何从电子桌面应用程序打开的外部URI检测重定向

Reactjs 如何从电子桌面应用程序打开的外部URI检测重定向,reactjs,electron,facebook-login,desktop-application,Reactjs,Electron,Facebook Login,Desktop Application,我正在构建一个带有手动facebook登录的react/electron桌面应用程序(https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#dialogresponse) 单击一个按钮,我使用shell.openExternal方法打开登录对话框,但是我需要检测这个重定向,然后从URI中读取访问令牌。我不知道怎么做(这里是新手) 哪一个应该是最好的方法 提前感谢。正确的答案是遵循本教程:ht

我正在构建一个带有手动facebook登录的react/electron桌面应用程序(
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#dialogresponse

单击一个按钮,我使用
shell.openExternal
方法打开登录对话框,但是我需要检测这个重定向,然后从URI中读取访问令牌。我不知道怎么做(这里是新手)

哪一个应该是最好的方法


提前感谢。

正确的答案是遵循本教程:
https://competenepal.com/lets-make-a-facebook-login-system-in-electron-that-actually-works/

我只需要实施这一部分:

var options = {
  client_id: '',
  scopes: "public_profile",
  redirect_uri: "https://www.facebook.com/connect/login_success.html"
};
var authWindow = new BrowserWindow({ width: 450, height: 300, show: false,
  parent: mainWindow, modal: true, webPreferences: {nodeIntegration:false} });
var facebookAuthURL = "https://www.facebook.com/v2.8/dialog/oauth?client_id=" + options.client_id + "&redirect_uri=" + options.redirect_uri + "&response_type=token,granted_scopes&scope=" + options.scopes + "&display=popup";
authWindow.loadURL(facebookAuthURL);
authWindow.show();
authWindow.webContents.on('did-get-redirect-request', function (event, oldUrl, newUrl) {
  var raw_code = /access_token=([^&]*)/.exec(newUrl) || null;
  var access_token = (raw_code && raw_code.length > 1) ? raw_code[1] : null;
  var error = /\?error=(.+)$/.exec(newUrl);

  if(access_token) {
    FB.setAccessToken(access_token);
    FB.api('/me', { fields: ['id', 'name', 'picture.width(800).height(800)'] }, function (res) {
      console.log('response is:', res);
    });
    authWindow.close();
  }
});

回答得好。不幸的是,目前(2019年9月),试图从electron登录oauth会产生“您试图从不允许我们保护您的帐户安全的浏览器或应用程序登录”的响应。现在,我想我只能使用Electron.shell在用户的默认浏览器中打开oauth。@junvar重定向后,如何导航回应用程序以完成身份验证?