node.js制作一个简单的登录拦截器
拦截器在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路径,第二个是过滤器,如果满足过滤器将下一步进入路由处理函数,如果不满足将不会走到后面的路由定义函数里.
相关推荐
-
详解node登录接口之密码错误限制次数(含代码)
密码次数尝试,可以有效的保护用户账户安全,有了限制之后,就算用量子计算机都束手无策. 银行卡也是这种,尝试次数过多,就锁定,说不定还会自动报警. 效果图 实现思路 数据库表设计 在表里面添加一个字段,string类型.里面包含两个数据,密码失败尝试日期 和 次数 如 2019a10a23|10 这里我使用|做数据段分割,a字母做日期分割 代码逻辑 当记录的日期是当天,那么密码错误的时候, 次数+1 当记录的日期不是当天,那么重置 代码封装 这是我实现的简单代码封装 (这里只实现了一天内x次的简单
-
node puppeteer(headless chrome)实现网站登录
puppeteer简介 puppeteer是Chrome团队开发的一个node库,可以通过api来控制浏览器的行为,比如点击,跳转,刷新,在控制台执行js脚本等等.有了这个神器,写个爬虫,自动签到,网页截图,生成pdf,自动化测试什么的,都不在话下. puppeteer的简单例子 代码来自官网: const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch();//打开浏
-
Express + Node.js实现登录拦截器的实例代码
介绍 这边的拦截器,对应于spring MVC中的filter,所有的http请求,通过拦截器处理之后才能访问到对应的代码/资源. 最典型的应用场景就是实现访问权限控制,给予不同的用户/用户组不同的页面和接口访问权限,仅能够访问允许的页面和接口. 场景 app.post('/login', function(request, res, next){ // do something }); app.post('/getData',function(request, res, next){ // d
-
node.js制作一个简单的登录拦截器
拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页. 下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面. 首先我们实现一个过滤器 exports.checkAuth=function(req, res, next) { var token = req.signedCookies.token; if (token && req.session.user && req.session.
-
详解用Node.js写一个简单的命令行工具
本文介绍了用Node.js写一个简单的命令行工具,分享给大家,具体如下: 操作系统需要为Linux 1. 目标 在命令行输入自己写的命令,完成目标任务 命令行要求全局有效 命令行要求可以删除 命令行作用,生成一个文件,显示当前的日期 2. 代码部分 新建一个文件,命名为sherryFile 文件sherryFile的内容 介绍: 生成一个文件,文件内容为当前日期和创建者 #! /usr/bin/env node console.log('command start'); const fs = r
-
基于JS制作一个简单的网页版地图
目录 前言 一.申请地图的AK密钥 二.主要代码分析 三.全部代码 四.结果展示 前言 以前做了一个安卓版的地图应用,现在突然想做一个简单的网页版地图.这个简单的网页版地图能根据城市名进行位置查询(有个城市列表的小控件,支持城市列表选择),还能根据经纬度进行位置查询.当你进行城市搜索时,或者经纬度查询城市时,该小控件也能自由地切换到目标城市. 一.申请地图的AK密钥 1.首先找到一个地图开放平台,这里以百度地图开放平台为例,步骤如下:进入百度地图开放平台,拉到最底下,进行登录注册,然后进入应用管
-
node.js做一个简单的爬虫案例教程
准备工作 首先,你需要下载 nodejs,这个应该没啥问题吧 原文要求下载 webstrom,我电脑上本来就有,但其实不用下载,完全在命令行里面操作就行 创建工程 准备工作做完了,下面就开始创建工程了 首先,在你想要放资源的地方创建文件夹,比如我在 E 盘里面创建了一个 myStudyNodejs 的文件夹 在命令行里面进入你创建的文件夹 如图 进入 e 盘:E: 进入文件夹:cd myStudyNodejs(你创建的文件夹的名字) 注意全是英文符号 初始化项目,在你创建的文件夹下面运行 npm
-
如何利用PyQt5制作一个简单的登录界面
目录 环境配置 额外工具配置 生成UI界面 总结 环境配置 新建python虚拟环境并激活 conda create -n pyqt python=3.8 conda activate py36 安装pyqt5 pip install pyqt5 安装pyqt5-tools pip install pyqt5-tools 在PyCharm中新建一个qtdemo工程,并使用这个新建的python虚拟环境作为工程环境 额外工具配置 依次点击File---Settings---Tools---Exte
-
使用Node.js实现一个简单的FastCGI服务器实例
本文是我最近对Node.js学习过程中产生的一个想法,提出来和大家一起探讨. Node.js的HTTP服务器 使用Node.js可以非常容易的实现一个http服务,最简的例子如官方网站的示例: 复制代码 代码如下: var http = require('http');http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Wo
-
使用AngularJS制作一个简单的RSS阅读器的教程
简介 几年前,我用C#写了一个RSS阅读器,但是我想如果把它做成一个SPA(单页应用)效果会更好. Angular使一些事情变得简单,RSS阅读器就是其中之一. 我也用Twitter Bootstrap(做UI)实现了RSS阅读器,调试页面样式是最难的地方之一...可能是因为我不擅长css的原因. 背景 我有一些自己喜欢的网站( CodeProject, Dr.Dobb's Journal, ComputerWorld, Inc. Magazine). 然而,我发现其中很多网站都有烦人的广告.风
-
基于node.js制作简单爬虫教程
前言:最近想学习node.js,突然在网上看到基于node的爬虫制作教程,所以简单学习了一下,把这篇文章分享给同样初学node.js的朋友. 目标:爬取 http://tweixin.yueyishujia.com/webapp/build/html/ 网站的所有门店发型师的基本信息. 思路:访问上述网站,通过chrome浏览器的network对网页内容分析,找到获取各个门店发型师的接口,对参数及返回数据进行分析,遍历所有门店的所有发型师,直到遍历完毕,同事将信息存储到本地. 步骤一:安装nod
-
Node.js实战 建立简单的Web服务器
前面一章,我们介绍了Node.js这个面向互联网服务的JavaScript服务器平台,同时Node.js的运行环境已经搭建起来,并通过两段HelloWorld程序验证了Node.js的基本功能.本章我们同样通过实战的演练,利用Node.js建立一个简单的Web服务器. 如果你熟悉.NET或其他类似平台的Web开发,你可能会像,建立一个Web服务器有什么,在Visual Studio中建立一个Web工程,点击运行即可.事实的确是这样,但请不要忘记,这样的代价是,比如果说,你是用.NET开发Web应
-
Spring MVC实现的登录拦截器代码分享
之前接触过struts拦截器,但是没有使用过Spring MVC拦截器,今天花了一天时间好好研究了一下. 本文首先介绍了拦截器的基本概念,然后向大家阐述拦截器与过滤器的简要区别,通过HandlerInterceptor 接口中定义的三个方法实现拦截器功能,最后介绍了配置相关的代码,接下来看看具体内容. 定义拦截器 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两
随机推荐
- JS日程管理插件FullCalendar简单实例
- JS中多步骤多分步的StepJump组件实例详解
- ES6新特性之函数的扩展实例详解
- python简单实现获取当前时间
- github配置使用指南
- Go语言中的方法定义用法分析
- 详解Vue 动态添加模板的几种方法
- IE6中ajax aborted错误请求中断解决方法
- jquery默认校验规则整理
- CentOS系统下Apache配置多域名或多端口映射的方法
- 删除重复数据的算法
- C#分屏控件用法实例
- JavaScript使用cookie记录临时访客信息的方法
- Android 多媒体播放API简单实例
- 贪吃蛇C语言代码实现(难度可选)
- 通过python+selenium3实现浏览器刷简书文章阅读量
- node Buffer缓存区常见操作示例
- 易语言删除组合框中指定项目的方法
- vue 组件中使用 transition 和 transition-group实现过渡动画
- js动态设置select下拉菜单的默认选中项实例
