【小白求问】关于给router加访问权限问题
发布于 9 年前 作者 jioyou 4423 次浏览 最后一次编辑是 8 年前 来自 问答

先上代码 <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");
  }
}

类似这样的。

举个栗子

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 嗯,这样看着工整多了

回到顶部