【发布时间】:2019-02-28 20:31:03
【问题描述】:
我有一条路线,旨在使用 google oauth 护照策略对用户进行身份验证,(/auth/google) 我还想在该路线 (/auth/google?someParam=SOME_PARAM) 的 url 中作为查询传递附加数据,我想要这个数据当我从谷歌(/auth/google/callback)取回它时,添加到req.user。问题是我可以通过/auth/google 访问此查询,但谷歌会将我重定向到/auth/google/callback,它不再有权访问此数据。
注意 - 由于设计限制,我无法将外部源用作数据库。
护照谷歌docs
代码:
// 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);
【问题讨论】:
标签: javascript node.js express passport.js google-oauth