Пока я создаю довольно простое приложение, которое использует сервер Node / Express с базовым API и интерфейсом React.
В Node / Express я использую Passport, чтобы пользователи могли войти в систему через Google, что работает на 100%.Однако только при использовании тега <a>
.
Если я использую <NavLink>
или <Link>
, в адресной строке отображается обновленный URL-адрес /auth/google
, но он не запускает поток.
Есть ли в этом случае какие-то ошибки в библиотекеact-router-dom?
Узел / Экспресс: authRoutes.js
const passport = require("passport");
module.exports = app => {
app.get(
"/auth/google",
passport.authenticate("google", {
scope: ["profile", "email"]
})
);
app.get(
"/auth/google/callback",
passport.authenticate("google"),
(req, res) => {
res.redirect("/surveys");
}
);
app.get("/api/logout", (req, res) => {
req.logout();
res.send(req.user);
});
app.get("/api/current_user", (req, res) => {
res.send(req.user);
});
};
Реагирующий клиент: setupProxy.js
const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy(["/api", "/auth/google"], { target: "http://localhost:5000" }));
};
<NavLink>
и <Link>
не работают ни для одного из этих маршрутов, к которым непосредственно обращается пользователь: '/ auth / google', '/api / current_user 'или' / api / logout. 'Но когда я использую <a>
, они все прекрасно работают.