下面给大家说说nodejs通过session实现身份验证
nodejs express session 身份验证
安装express session模块
npm install express-session
引入模块
var session = require('express-session');
var cookieParser = require('cookie-parser');
应用cookie及session
app.use(cookieParser());
app.use(session({
resave: true, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'love'
}));
请求时,应用身份验证(要放在加载routes的前面)
app.use(function(req, res, next) {
if (!session || !session.user) {
if(req.url.indexOf('/fv/') != -1) {
res.redirect('/login');
} else if(req.url.indexOf('/fj/') != -1) {
res.json(global.result.notLogin);
} else {
next();//如果请求的地址是登录则通过,进行下一个请求
}
} else {
next();
}
});
说明:以上请求地址包含/fv/和/fj/的需要验证是否登录。其它情况为可以正常访问。
登录和退出的简单逻辑
var express = require('express');
var session = require('express-session');
var router = express.Router();
module.exports = router;
router.get('/login',function(req,res){
res.render("login");
});
router.post('/login',function(req,res){
if(req.body.username=="love" && req.body.password=="love"){
var user = {'username':'love'};
session.user = user;
res.redirect('/admin/app/list');
} else {
res.redirect('/login');
}
});
router.get('/logout',function(req,res){
session.user = null;
res.redirect('/login');
});
说明:req.session.user = user;代表设置user的信息到session中,key为user。设置req.session.user=null;代表移除session中key为user的值。
感谢您的阅读,希望对您有帮助,本文版权归 #惊讶# 所有