У меня есть маршрут, который предназначен для аутентификации пользователя с использованием стратегии паспорта Google oauth, (/auth/google
) Я также хочу передать дополнительные данные в виде запроса в URL-адресе по этому маршруту (/auth/google?someParam=SOME_PARAM
), эти данные я хочудобавьте к req.user
к тому времени, когда я получу его от Google (/auth/google/callback
).Проблема в том, что у меня есть доступ к этому запросу через /auth/google
, но Google перенаправит меня на /auth/google/callback
, который больше не имеет доступа к этим данным.
note - Из-за ограничений дизайна я не могу сделать это с внешним источником в качестве базы данных.
passport-google документы
КОД:
// auth.js
router.get(
"/",
(req, res, next) => {
let siteName = req.query.siteName;
let pageName = req.query.pageName;
console.log("siteName", siteName);
return next();
},
passport.authenticate("google", {
scope: ["https://www.googleapis.com/auth/plus.login"]
})
);
module.exports = router;
// authCb.js
router.get(
"/",
passport.authenticate("google", {
scope: ["https://www.googleapis.com/auth/plus.login"],
failureRedirect: "/"
}),
(req, res) => {
console.log(req.user);
res.send(req.user);
}
);
module.exports = router;
// app.js
app.use("/auth/google", auth);
app.use("/auth/google/callback", authCb);