300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 分享Express + Node.js实现登录拦截器详解

分享Express + Node.js实现登录拦截器详解

时间:2022-04-05 20:30:19

相关推荐

分享Express + Node.js实现登录拦截器详解

web前端|js教程

javascript,Node.js,Express

web前端-js教程

本篇文章主要介绍了Express + Node.js实现拦截器的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

飞鸽传书源码,vscode怎么恢复到刚安装的状态,ubuntu 系统主题,boot项目部署到tomcat,sqlite表压缩,网页设计基本知识,西部数码ftp服务器,dz抽奖活动插件,人脸识别 前端框架,爬虫用的好,php匹配开头,英文seo工程师招聘,淘宝网站源码下载,棋牌手机网页源码,空间模板制作,项目管理系统页面模板,班级学生管理系统页面,java通讯录程序源码lzw

介绍

网络摄像机源码出售,修改权限ubuntu,爬虫服务处罚,php拒绝请求php代码,高端seo方法lzw

这边的拦截器,对应于spring MVC中的filter,所有的http请求,通过拦截器处理之后才能访问到对应的代码/资源。

o2o php系统源码下载,ubuntu群晖硬盘,scrapy爬虫传参,php 远程办公,seo底层响应lzw

最典型的应用场景就是实现访问权限控制,给予不同的用户/用户组不同的页面和接口访问权限,仅能够访问允许的页面和接口。

场景

app.post(/login, function(request, res, next){// do something});app.post(/getData,function(request, res, next){// do something var data="some data"; res.send({"data":data});});

如果不做任何处理,任何人发送getData的post请求可以直接从后台读取数据,而不需要任何的登陆,只需要知道接口就可以。

对应每个接口,如果在每个接口下面加上权限判断,代码会非常的重复,于是面向切面就来了,可以通过把拦截器加在每个http请求之前,来实现权限判断的功能。

实现

// 所有用户可以访问index.html, error.html// admin可以访问admin.html, /getData// 登陆用户可以访问home.htmlapp.all(/*, function(request, res, next){ // 思路: // 得到请求的url // 然后得到request的cookie,根据cookie得到当前登陆的用户 // 判断用户对应url的权限 var jsPattern=/\.js$/; var url=request.orignalUrl; if(jsPattern.test(url)){ // 公共部分,放行 next(); return; } if(url==index.html||url==error.html){ next(); return; } var cookie=JSON.stringify(req.cookies); if(access){ next(); } else{ res.redirect(error.html); }});

实现思路:

1. 拦截所有请求(上面的就可以啦),得到当前访问的url

2. 根据cookie得到当前用户

3. 根据url和用户对应的身份来判断是否可以访问

4. 如果可以调用next();

5. 如果不能访问,返回错误信息

注意

next(); 仅仅是一个函数,对应着原本处理请求的代码,如前面的app.post(‘/getData’),当这里的代码处理完成后会回到对应next(); 处,所以需要处理好对应的关系,如果必要需要return结束当前的函数,不然会出错哒。

对于公共的部分,如js插件,部分图片,还有css的部分,可以直接放行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。