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;根据用户的id存入session,如果为了以后方面,可以把用户的一系列信息都存到里面,但是这样就增加了session的存储容量。其实这种也可以解决,比如h5的本地存储
req.session.uid = user._id;
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);

3.1 拦截的另一种方法,更简单

设置一个中间件的js文件
// middlewares/login.js module.exports = function(req,res,next){
var url = req.url;
if (!req.session.uid) {
res.render('commen/error', { msg: '对不起,请登录个人信息,否则无法进入后台管理页面', time: 3000, url: '/login' });
return;
}
next();
} 在app.js中导入,全局中间件
var login = require('./middlewares/login'); app.use('/', indexRouter);
// 拦截,上面是不需要拦截的路由规则,下面是需要拦截的路由规则
app.use(login);
app.use('/', adminRouter); 这样就可以拦截了后台页面,而不拦截index.js中定义的所有前台页面

最新文章

  1. Oracle 实验四-七
  2. sql存储过程异常捕获并输出例子还有不输出过程里面判断异常 例子
  3. windows系统nginx配置root绝对路径的问题
  4. Math.ceil(a/b)结果出错--原因是a和b不是double
  5. 用 Orchard 建立 Dynamics CRM 的入口网站
  6. restFull常用注解
  7. Eclipse的详细安装步骤
  8. Manthan, Codefest 16
  9. JS Math对象中一些小技巧
  10. cef3 获得 谷歌浏览器 网页源码 哈哈
  11. python判断key是否在字典用in不用has_key
  12. apache开源项目--subversion
  13. Redis操作字符串工具类封装,Redis工具类封装
  14. WordPress HMS Testimonials 多个跨站脚本漏洞和跨站请求伪造漏洞
  15. 老毛桃U盘启动盘制作工具V20140501完美贡献版
  16. Git详解之一 Git起步
  17. [Oracle]高水位标记(HWM)
  18. scala学习笔记5 (隐式转化/参数/类)
  19. 【开发】iOS入门 - UIViewController学习笔记
  20. nginx配置资源缓存

热门文章

  1. Linux内核多线程实现方法 —— kthread_create函数【转】
  2. rust 入门
  3. UVALive 5760 Alice and Bob
  4. Hashtable之Properties
  5. windows下制作debian U盘启动
  6. maven工程的建立
  7. nexus 安装配置
  8. HDU3974 Assign the task(多叉树转换为线段+线段树区间染色)
  9. Python股票信息抓取(三)
  10. xcode没有ios7的模拟器