вам нужно создать «промежуточное программное обеспечение» - предварительный обработчик, который будет проверять роль пользователя, если роль пользователя - admin, затем продолжить, иначе запретить доступ
var Boom = require('boom');
const CheckAdmin= function (request, reply) {
const { role } = JSON.parse(request.headers["roles"]);
if(role=='admin'){
return reply.continue();
}else{
return reply(Boom.unauthorized('Access Denied'));
}
}
server.route({
method: 'GET',
path: 'api1',
config: {
pre: [{ method: CheckAdmin }],
handler: function (request, reply) {
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: 'api2',
config: {
pre: [{ method: CheckAdmin }],
handler: function (request, reply) {
reply('Hello, world!');
}
});
// api3 открыт, все могут его использовать,поэтому нет необходимости добавлять предварительный обработчик здесь
server.route({
method: 'GET',
path: 'api3',
handler: function (request, reply) {
reply('Hello');
}
});