使用node.js的express模块怎么实现权限管理?
发布于 11 年前 作者 ljgstudy 24853 次浏览 最后一次编辑是 8 年前

如题,使用node.js的express模块怎么实现类似于java中的过滤器使得未登陆的用户不能访问后台,哪位大神能介绍一下思路或者给点阅读的资料~拜谢!

14 回复

其实最简单就是用中间件 app.use() 这个的概念跟java 的过滤器基本用法一样…

推荐去看下nswbmw大神写的N-blog,里面有涉及到~

自己写一个中间件啊

小白一个,给点资料?

谢谢!我会关注的~

谢谢!

Thanks!

@ljgstudy 你可以看一下express的官方API,将你写的中间件放在你要管理的路由的上方,因为js是由上向下执行的 比如:

app.get('/post',checkLogin);
app.get('/post',function(req,res){
	res.render('post',{
          //do something
	});
});
var checkLogin = function (req,res,next){
   // do something
   next();
}

这样就实现了一个简单的权限管理。

app.use(function(req,res){
	 	res.render("404");
	 });

这段代码放在路由的最下端,也就是express模板找不到匹配的路由,就执行最下面的这个404中间件了。 一般而言中间价都是app.use();定义的,具体的你可以根据你自己的业务经行写,你也可以用来做运行日志。:) 希望这能给你有帮助。

@struCoder 很详细,谢谢大神指点!!

买书看吧少年

推荐一本?

开源博客系统liblog已经具备权限管理,方便可以自定义,并且开放源码,可以参照他看一下http://livisky.github.io/

可以实现一个Express的中间件(或者叫过滤器),对请求进行权限检查。不过这个东西没必要重头写,这里有现成的:https://github.com/node-casbin/express-authz

回到顶部