我正在使用 passport.js 对用户进行身份验证。我希望能够传递从用户那里收集的用户名,该用户名将到达身份验证过程的结尾,以便我可以在创建用户时存储用户名(如果它尚不存在)。我试过这个:
app.get("/auth/google", function(request, response)
{
console.log(request.query.username);
passport.authenticate("google",
{
scope:
[
"https://www.googleapis.com/auth/userinfo.profile",
"https://www.googleapis.com/auth/userinfo.email"
]
})(request, response);
});
app.get("/auth/google/callback", function(request, response)
{
console.log(request.query.username);
passport.authenticate("google",
{
successRedirect: "/",
failureRedirect: "htm/error"
})(request, response);
});
对 /auth/google 的调用会打印用户名,但回调会打印 undefined。即使我可以将用户名获取到回调,我仍然不确定如何将其获取到谷歌策略。那么我是否必须制定自己的策略才能使其发挥作用?