Tôi đang sử dụng passport.js để xác thực người dùng. Tôi muốn có thể chuyển tên người dùng, được thu thập từ người dùng, điều này sẽ đến cuối quá trình xác thực để tôi có thể lưu tên người dùng khi tôi tạo người dùng (nếu nó chưa tồn tại). Tôi đã thử điều này:Làm cách nào để chuyển thông số qua chuỗi hộ chiếu của tôi?
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);
});
Cuộc gọi đến/auth/google in tên người dùng, nhưng bản in lại không xác định. Ngay cả khi tôi có thể nhận được tên người dùng để gọi lại, tôi vẫn không chắc chắn làm thế nào tôi sẽ nhận được nó vào chiến lược google. Vậy tôi có phải tạo chiến lược riêng của mình để làm việc này không?
Có thể là phiên và cookie cũng được ghi đè bởi một chiến lược OpenID (https://github.com/liamcurry/hộ chiếu-hơi nước)? Tôi đã thử giải pháp của bạn, nhưng 'req.session.foo' là' undefined' trong đường gọi lại. – guest459473