跳到主要内容
CNode

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

问答
Jjioyou发布于 10 年前最后回复 10 年前
653590

先上代码

app.js:

var express = require('express'); 
var app = express();
require('./config/routes')(app); 

routes.js:

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

admin.js:

var express = require('express');
var router = express.Router();
router.get('/admin/list', function(req, res, next) {
    res.render('admin',{
        title: 'Page List',
    });
});

差不多写了个这种结构,现在想写权限,不知道从哪入手了, 看网上的例子,基本用的都是get的 app.get("/admin/list", 参数。。。) ; 这种,用参数 = fun{} 写的权限判断 照葫芦画瓢画不过来了, 求大神们指点指点 我用的是express的router()方法写的路由 请问访问权限这里应该怎么加???

查看回复

回复 (6)

H
HarryHong#510 年前

举个栗子

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

S
soliury#410 年前

测试 From Noder

S
soliury#210 年前

@coderfox 测试 From Noder

C
coderfox#110 年前

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

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

类似这样的。

参与回复

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