node.js制作一个简单的登录拦截器


Posted in Javascript onFebruary 10, 2020

拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页.

下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面.

首先我们实现一个过滤器

exports.checkAuth=function(req, res, next) {
  var token = req.signedCookies.token;
  if (token && req.session.user && req.session.user.token === token)
    next();
  else if (token) {
    //if invalid token or no session, should rebuild
    var authInfo = user.getAuthInfo(token);
    if (authInfo && authInfo.isAuth) {
      req.session.user = {
        userID: authInfo.userID,
        userName: authInfo.userName,
        isAuth: authInfo.isAuth,
        token: token
      }
      next();

    } else
      res.redirect('/user/login');
  } else
    res.redirect('/user/login');
}

然后定义路由,并加入过滤器

module.exports = function (app) {
  app.get('/user/blogList',pageAdmin.checkAuth, pageAdmin.pageList);
  app.all('/user/post',pageAdmin.checkAuth, pageAdmin.pagePost);
}

上面的路由定义接收3个参数,第一个是 请求的url路径,第二个是过滤器,如果满足过滤器将下一步进入路由处理函数,如果不满足将不会走到后面的路由定义函数里.

Javascript 相关文章推荐
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
jquery+ajax实现跨域请求的方法
Jan 20 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
node微信开发之获取access_token+自定义菜单
Mar 17 Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 #Javascript
jQuery实现简易QQ聊天框
Feb 10 #jQuery
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
Feb 09 #Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
Feb 09 #Javascript
如何基于javascript实现贪吃蛇游戏
Feb 09 #Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 #Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 #Javascript
You might like
PHP中的正则表达式函数介绍
2012/02/27 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
由面试题加深对Django的认识理解
2019/07/19 Python
详解python中index()、find()方法
2019/08/29 Python
基于FME使用Python过程图解
2020/05/13 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
教学质量评估实施方案
2014/03/17 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
本科生求职信
2014/06/17 职场文书
借条格式范本
2015/05/25 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python