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 相关文章推荐
JS 容错处理代码, 屏蔽错误信息
Mar 09 Javascript
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
jQuery插件实现控制网页元素动态居中显示
Mar 24 Javascript
JQuery中clone方法复制节点
May 18 Javascript
jquery中live()方法和bind()方法区别分析
Jun 23 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
angularjs点击图片放大实现上传图片预览
Feb 24 Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 Javascript
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
element-ui 表格数据时间格式化的方法
Aug 24 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
js通过循环多张图片实现动画效果
Dec 19 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 日期时间处理函数小结
2009/12/18 PHP
php 生成文字png图片的代码
2011/04/17 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
JavaScript 学习笔记(十五)
2010/01/28 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
用python编写第一个IDA插件的实例
2018/05/29 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
大学班长的职责
2014/01/27 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
2014年工人工作总结
2014/11/25 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
催款函怎么写
2015/06/24 职场文书
Python类方法总结讲解
2021/07/26 Python