Używam passport.js do uwierzytelniania użytkowników. Chciałbym móc przekazać nazwę użytkownika, pobraną od użytkownika, która dotrze do końca procesu uwierzytelniania, aby móc przechowywać nazwę użytkownika podczas tworzenia użytkownika (jeśli jeszcze nie istnieje). Próbowałem to:Jak mogę przekazać parametr przez moją sieć 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);
});
Wezwanie do/auth/google wypisuje nazwy użytkownika, ale drukuje wywołania zwrotnego niezdefiniowana. Nawet jeśli mógłbym uzyskać nazwę użytkownika do wywołania zwrotnego, nadal nie jestem pewien, w jaki sposób dostałbym go do strategii Google. Czy musiałbym wtedy stworzyć własną strategię, aby to zadziałało?
możliwe jest, że sesje i ciasteczka są zastępowane przez strategii OpenID (https://github.com/liamcurry/passport-steam)? Próbowałem Twojego rozwiązania, ale 'req.session.foo' jest' niezdefiniowanym 'w trasie wywołania zwrotnego. – guest459473