【小白求问】关于给router加访问权限问题
先上代码 <p>app.js:</p>
var express = require('express');
var app = express();
require('./config/routes')(app);
<p>routes.js:</p>
var admin = require('../app/controllers/admin');
module.exports = function(app) {
app.use(index);
app.use('/admin', users);
app.use(list);
app.use(detail);
app.use(admin);
}
<p>admin.js:</p>
var express = require('express');
var router = express.Router();
router.get('/admin/list', function(req, res, next) {
res.render('admin',{
title: 'Page List',
});
});
<p> 差不多写了个这种结构,现在想写权限,不知道从哪入手了, 看网上的例子,基本用的都是get的 <b>app.get("/admin/list", 参数。。。) ;</b> 这种,用参数 = fun{} 写的权限判断 照葫芦画瓢画不过来了, 求大神们指点指点 我用的是express的router()方法写的路由 请问访问权限这里应该怎么加??? </p>
6 回复
比如你要给 /admin
下面所有的加权限控制,就在所有路由最前面写一个
app.use('admin', function(req, res, next){
if( have_permission ){
next();
} else {
next(new Error("permission denied");
}
}
类似这样的。
@coderfox 多谢
测试 From Noder
举个栗子
hasPermission = function (req, res, next) { if (has) { next () } else { res.status(403).send(blahblah) } }
router.get(’/admin/list’, hasPermission() , function(req, res, next) { res.render(‘admin’,{ title: ‘Page List’, }); });
@HarryHong 嗯,这样看着工整多了