Я запускаю реагирующее веб-приложение с бэкэндом express, использующим паспорт JS с Oauth2.0 для входа в Google.
для разработки I:
Есть пакет реакции json прокси для порта 5000 (мой express бэкэнд)
have nodejs / express обрабатывают аутентификацию
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 при любых запросах на получение оттуда.