下面给大家说说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的值。
感谢您的阅读,希望对您有帮助,本文版权归 #惊讶# 所有