【发布时间】:2019-02-08 15:46:28
【问题描述】:
我在服务器端使用 HapiJs,想根据角色进行路由配置,我想限制用户访问某些端点
var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({ port: 8000 });
server.route({
method: 'GET',
path: 'api1',
handler: function (request, reply) {
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: 'api2',
handler: function (request, reply) {
reply('Hello');
}
});
server.route({
method: 'GET',
path: 'api3',
handler: function (request, reply) {
reply('Hello');
}
});
const parseHeader = (request, h) => {
const { role } = JSON.parse(request.headers["roles"]);
};
server.ext("onRequest", parseHeader);
server.start(function () {
console.log('Server running at:', server.info.uri);
});
这里我从角色标题中获取角色,因此角色可以是“管理员”或“客户”。如果角色是 admin 用户可以访问所有 api 端点 'api1'、'api2' 和 'api3' 但如果它的“客户”那么只有 'api3' 可以访问。
如何在路由上实现这种授权?
【问题讨论】:
标签: javascript node.js hapijs