паспорт или Google производство не будет перенаправлять на сайт для реагирования веб-приложения - PullRequest
0 голосов
/ 12 апреля 2020

Я запускаю реагирующее веб-приложение с бэкэндом express, использующим паспорт JS с Oauth2.0 для входа в Google.

для разработки I:

  1. Есть пакет реакции json прокси для порта 5000 (мой express бэкэнд)

  2. have nodejs / express обрабатывают аутентификацию

  3. res.redirect на домашнюю страницу (Oauth 2.0 считает, что делает это все на порте 3000 все время, пока выполняется реакция).

  "/auth/google/login",
  passport.authenticate("google", { failureRedirect: "/new" }),
  (req, res) => {
    console.log(` Authentication Status: ${req.isAuthenticated()}`);
    console.log(` User? : ${req.user}`);
    console.log("end of user status before redirect.");
    const user = req.user;
    req.logIn(user, (e) => {
      if (!e) {
        res.redirect("/"); // THIS REDIRECT GOES TO REACT APP HOME ON PORT 3000! 
      } else {
        console.log(e);
      }
    });
  }
);

Для развертывания это не совсем работает. сборка приложения реакции делает запрос читаемым как порт 5000, поэтому я использую nginx, чтобы проксипассировать к порту 5000, чтобы продолжить оттуда ...

    proxy_pass http://example.com:5000/auth/google;
    }
    location /auth/google/login {
    proxy_pass http://example.com:5000/auth/google/login;
    }

Однако при этом он перенаправляет его на дом. ... на порт 5000

Если я принудительно переадресовываю res.redirect на дом через порт приложения реакции 3000, я теряю видимость аутентификации и требую. is authenticated вернет false при любых запросах на получение оттуда.

...