CNode

【小白求问】关于给router加访问权限问题

问答
Jjioyou发布于10 年前最后回复10 年前6 回复5325 浏览0 收藏

先上代码

var express = require('express'); 
var app = express();
require('./config/routes')(app); 
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);
}
var express = require('express');
var router = express.Router();
router.get('/admin/list', function(req, res, next) {
    res.render('admin',{
        title: 'Page List',
    });
});
查看回复

回复 (6)

S
soliury#2·10 年前

测试 From Noder

C
coderfox#3·10 年前

比如你要给 /admin 下面所有的加权限控制,就在所有路由最前面写一个

app.use('admin', function(req, res, next){
  if( have_permission ){
    next();
  } else {
    next(new Error("permission denied");
  }
}

类似这样的。

S
soliury#4·10 年前

@coderfox 测试 From Noder

H
HarryHong#5·10 年前

举个栗子

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', }); });

参与回复
登录后即可参与回复。登录