nodejs中间件拦截,express不登录无法进入后台页面

Posted 清风白水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中间件拦截,express不登录无法进入后台页面相关的知识,希望对你有一定的参考价值。

22.设置拦截

只有登录才能进入到后台页面,不登录无法进入

如果登陆成功, 写入session, 参数 uid    uid=123dsfjksldfjsl
检测登陆, 请求中 session 是否包含 uid 参数.

1.app.js 入口页面

设置session 的uid
app.use(session({
  secret: ‘bitiancanshu‘,
  // 以下是选填参数,但是不填会提示警告 start
  resave: false,
  saveUninitialized: false,
    //  设置connect.sid  
  name: ‘luyao‘,
  // 设置生命周期
  cookie: { maxAge: 60000000 },
}))

2.index.js 前台页面

        当登录成功时
     if(user.password == md5(fields.password)){
          // 登录成功,写入session;
          req.session.uid = ‘adminuid‘;
          res.render(‘commen/success‘,{msg:‘恭喜您,登录成功‘,time:3000,url:‘/admin‘});
        } else {
          res.render(‘commen/error‘, { msg: ‘对不起,密码错误,请核对后重新输入‘, time: 3000, url: ‘/login‘ });
        }

3.app.js

//  拦截
app.use(function(req, res, next) {
  var url = req.url;
  // 判断不拦截的路由 出/login和/之外的都拦截
  if (url != ‘/login‘ && !req.session.uid && url != ‘/‘) {
    console.log(‘跳转到登录页‘);
    res.render(‘commen/error‘, { msg: ‘对不起,请登录个人信息,否则无法进入后台管理页面‘, time: 3000, url: ‘/login‘ });
    return;
  }
  next();
});
*****************************注意*****************************

引入路由规则,一定要在中间件和设置session的后面,否则无效,切记
app.use(‘/‘, indexRouter);
app.use(‘/‘, adminRouter);

以上是关于nodejs中间件拦截,express不登录无法进入后台页面的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS(Express框架)实现 Token 验证免密登录 (一)

nodejs--express的中间件multer实现图片文件上传--XUEBIG

NodeJS + Express - 将会话中间件应用于某些路由

nodejs篇 express 中间件详解

node + express 登录拦截器

nodejs篇 express