无法在express+;带nodejs的护照

无法在express+;带nodejs的护照,express,passport-local,Express,Passport Local,在这里,我试图在用户登录时设置cookie,但即使是console.log(“hello”);它不起作用 // process the login form app.post('/login',passport.authenticate('local-login', { successRedirect : '/profile', // redirect to the secure profile section failureRed

在这里,我试图在用户登录时设置cookie,但即使是console.log(“hello”);它不起作用

// process the login form
        app.post('/login',passport.authenticate('local-login', {
            successRedirect : '/profile', // redirect to the secure profile section
            failureRedirect : '/login', // redirect back to the signup page if there is an error
            failureFlash : true // allow flash messages
            }), function(req, res) {
            console.log("hello");

            if (req.body.remember) {

              req.session.cookie.maxAge = 1000 * 60 * 3;
            } else {
              req.session.cookie.expires = false;
            }
          res.redirect('/');
    });
但是我试着直接用express.session设置,效果很好,如下所示

app.use(express.session(
    {   secret: 'sessionmaxageset',  
        cookie: { maxAge : 3600000 } 
    } 
)); // session secret

下面的代码主要基于。我使用的是Express 4.2.0,因此必须使用npm安装主体解析器和cookie解析器中间件。现在是名为cookies.js和keygrip.js的cookie解析器的超级种子

SERVER.JS var express = require('express'); var app = module.exports = express(); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var http = require('http'); var logger = require('morgan'); var colours = require('colors'); var port = process.env.PORT || 4000; //set the port // parses request cookies, populating // req.cookies and req.signedCookies // when the secret is passed, used // for signing the cookies. app.use(cookieParser('secret-string')); // parses json, x-www-form-urlencoded, and multipart/form-data app.use( bodyParser() ); app.use( logger() ); app.get('/', function(req, res) { if (req.cookies.remember) { res.send('Remembered :). Click to <a href="/forget">forget!.'); } else { res.send('<form method="post">Check to <label>'+ '<input type="checkbox" name="remember"/> remember me </label> /' + '<input type="submit" value="Submit"/>.

'); } }); app.get('/forget', function(req, res) { res.clearCookie('remember'); res.redirect('back'); }); app.post('/', function(req, res) { var minute = 60 * 1000; if (req.body.remember) res.cookie('remember', 1, { maxAge: minute }); res.redirect('back'); }); var server = app.listen(port, function() { console.log('Listening on port %d' .green , server.address().port) }); SERVER.JS var express=需要(“express”); var app=module.exports=express(); var bodyParser=require('body-parser'); var cookieParser=require('cookie-parser'); var http=require('http'); var记录器=需要('morgan'); var colors=需要(“颜色”); var port=process.env.port | 4000//设置端口 //解析请求cookie,填充 //req.cookies和req.signedCookies //当秘密被传递时,使用 //用于签署cookies。 app.use(cookieParser('secret-string'); //解析json、x-www-form-urlencoded和多部分/表单数据 app.use(bodyParser()); app.use(logger()); app.get('/',函数(req,res){ 如果(请求cookies.记住){ res.send('记住:)。单击可忘记!); } 否则{ res.send(“检查“+”记住我/“+”。 ); } }); app.get('/forget',函数(req,res){ res.clearCookie(“记住”); res.redirect(“back”); }); app.post(“/”,函数(请求,res){ var分钟=60*1000; if(请求主体记住) res.cookie('memory',1,{maxAge:minute}); res.redirect(“back”); }); var server=app.listen(端口,函数(){ console.log('侦听端口%d'。绿色,server.address().port) });