O ExpressJS é um framework para aplicativo da web do Node.js mínimo e flexível que fornece um conjunto robusto de recursos para aplicativos web e móvel. Uma das características mais poderosas do ExpressJS é a sua capacidade de gerir rotas. Neste capítulo, vamos explorar como trabalhar com rotas no ExpressJS, com foco especial em trabalhar com autorização nas rotas.
Rotas são um aspecto essencial de qualquer aplicativo da web. Elas determinam como um aplicativo responde a um pedido do cliente para um endereço específico. No ExpressJS, as rotas são definidas anexando manipuladores de rota a instâncias do aplicativo.
Para começar, vamos primeiro entender como definir uma rota básica. Suponha que queremos criar uma rota para a página inicial do nosso aplicativo. Nós faríamos isso da seguinte maneira:
app.get('/', function(req, res) { res.send('Bem-vindo à página inicial!'); });
Aqui, 'app' é uma instância do express, 'get' é o método HTTP que estamos lidando, '/' é o caminho da rota, e a função é o manipulador de rota que é executado quando a rota é correspondida.
Agora, vamos falar sobre autorização. A autorização é um processo que verifica se o usuário tem permissão para realizar a ação solicitada. No contexto das rotas, a autorização pode ser usada para restringir o acesso a certas rotas com base na autenticação do usuário.
Para implementar a autorização em nossas rotas, podemos usar o middleware. O middleware é uma função que tem acesso ao objeto de solicitação (req), o objeto de resposta (res), e a próxima função de middleware no ciclo de solicitação-resposta do aplicativo.
Podemos definir um middleware de autorização da seguinte maneira:
function verificaAutorizacao(req, res, next) { if (req.user.estaAutorizado) { next(); } else { res.status(403).send('Acesso negado'); } }
Aqui, 'verificaAutorizacao' é o middleware que estamos definindo. Ele verifica se o usuário está autorizado verificando a propriedade 'estaAutorizado' do objeto 'user' na solicitação. Se o usuário estiver autorizado, ele chama a próxima função de middleware. Caso contrário, ele envia uma resposta com status 403 e uma mensagem de 'Acesso negado'.
Agora, podemos usar esse middleware em nossas rotas para restringir o acesso. Por exemplo, se quisermos restringir o acesso à rota '/secreto', faríamos isso da seguinte maneira:
app.get('/secreto', verificaAutorizacao, function(req, res) { res.send('Bem-vindo à página secreta!'); });
Aqui, 'verificaAutorizacao' é passado como o segundo argumento para 'app.get'. Isso significa que ele será executado antes do manipulador de rota sempre que a rota '/secreto' for acessada. Se o usuário não estiver autorizado, ele receberá uma resposta com status 403 e a mensagem 'Acesso negado'. Se o usuário estiver autorizado, o manipulador de rota será executado e o usuário verá a mensagem 'Bem-vindo à página secreta!'.
Em resumo, as rotas são um aspecto essencial do desenvolvimento de aplicativos web com ExpressJS. Elas permitem que você defina como seu aplicativo deve responder a diferentes pedidos. A autorização é um aspecto importante das rotas que permite restringir o acesso com base na autenticação do usuário. Ao usar middleware, você pode facilmente implementar a autorização em suas rotas.