Javascript Passport不设置cookies?
我试图在有人登录时将用户分配到cookie,但passport似乎没有将数据分配到cookie。您可以在下面找到代码:Javascript Passport不设置cookies?,javascript,node.js,passport.js,Javascript,Node.js,Passport.js,我试图在有人登录时将用户分配到cookie,但passport似乎没有将数据分配到cookie。您可以在下面找到代码: app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser()); app.use(bodyParser.json()); app.use(passport.initialize()); //Use session app.use(passport.session({ secr
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(cookieParser());
app.use(bodyParser.json());
app.use(passport.initialize());
//Use session
app.use(passport.session({ secret: '=Mx;D5F}t&iJZ&w-g;FLK:%QavZgZt', cookie: { maxAge: 0 }, resave: true, saveUninitialized: true }))
app.use(express.static('server/public'));
//Set view engine
app.set('views', 'server/views')
app.set('view engine', 'pug');
//Set passport local strategy
passport.use(new LocalStrategy({ usernameField: "email" },
function (email, password, done) {
User.findOne({ 'email': email }, async function (err, user) {
console.log('user requested password caught in passport: ', password);
if (err) { return done(err); }
if (!user) {
return done(null, false, console.log('Wrong username'));
}
return await user.validatePassword(password, function (err, result) {
if (err || !result) return done(null, false, console.log('Wrong Password'));
return done(null, user);
})
});
}
));
// serialize user object
passport.serializeUser(function (user, done) {
done(null, user.id);
});
// deserialize user object
passport.deserializeUser(function (id, done) {
User.findById(id, function (err, user) {
done(err, user);
})
});
这是登录路径:
//Route for user login
app.post('/auth/local/signin',
function (req, res, next) {
passport.authenticate('local', function (err, user, info) {
console.log(err);
console.log(user);
if (err) {
console.log('passport.authenticate: error')
} else if (!user) {
console.log('passport.authenticate: user')
} else {
console.log('next handler')
console.log('Cookie assigned: ' + req.user)
return res.redirect('/dashboard')
}
return res.redirect('/login')
})(req, res, next)
}
)
正如您所看到的,我尝试记录req.user,它返回未定义的
但是,console.log(user)从数据库返回用户,这正是我想要的。请求来自express,而不是passport。对于cookies,您应该检查
req.cookies
@DarknessZX,我已经用console.log('Cookie assigned:',req.cookies)尝试过了,它返回Cookie assigned:[Object:null prototype]{}您尝试过增加maxAge
?