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 IFrame 强制刷新代码
Jul 23 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
Bootstrap CSS组件之输入框组
Dec 17 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 Javascript
微信小程序整个页面的自动适应布局的实现
Jul 12 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
python字典排序实例详解
2015/05/20 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python画微信表情符的实例代码
2019/10/09 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
境外导游求职信
2014/02/27 职场文书
小学一年级评语大全
2014/04/22 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
结婚典礼致辞
2015/07/28 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript