xjinza
1/6/2018 - 4:46 AM

session express 登录

express,使用session进行身份认证

来源:http://blog.csdn.net/u010874036/article/details/52039431
1.应用cookie及session
app.use(session({
  /// /这里的name值得是cookie的name,默认cookie的name是:connect.sid
  name: 'test',
  secret: 'qianming',
  cookie: { path: '/', httpOnly: false, secure: false, maxAge: 60000 },
  // 重新保存:强制会话保存即使是未修改的。默认为true但是得写上
  resave: true,
  // 强制“未初始化”的会话保存到存储。 
  saveUninitialized: true

}))

2.请求时,应用身份验证
app.use(function(req,res,next){  
    if (!req.session.user) {  
        if(req.url=="/login"){  
            next();//如果请求的地址是登录则通过,进行下一个请求  
        }  
        else  
        {  
            res.redirect('/login');  
        }  
    } else if (req.session.user) {  
        next();  
    }  
});  

3.登陆设计
app.post('/login',function(req,res){  
    if(req.body.username=="love" && req.body.password=="love"){  
        var user = {'username':'love'};  
        req.session.user = user;  
        res.redirect('/admin/app/list');  
    }  
    else  
    {  
        res.redirect('/login');  
    }  
});  
  
app.get('/logout',function(req,res){  
    req.session.user = null;  
    res.redirect('/login');  
});