Nodejs中session的简单使用及通过session实现身份验证的方法

下面给大家说说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的值。

感谢您的阅读,希望对您有帮助,本文版权归 #惊讶# 所有

评论 (0)