Uma aplicação web foi desenvolvida utilizando Node.js com o framework Express. O objetivo é implementar um middleware simples de autenticação para proteger a rota /login. Este middleware verifica o cabeçalho Authorization das requisições HTTP, validando um token pré-definido. Além disso, o código inclui o tratamento de erros de autenticação e uma resposta padrão para rotas inexistentes.
Considere o seguinte trecho de código que implementa essa funcionalidade.
var express = require('express');
var app = express();
const auth = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
if (token !== 'XXX') {
throw new Error('ERROR!');
}
next();
}
catch (err) {
res.status(401).send({ message: 'Unauthorized' });
}
}
app.use('/login', auth);
app.post('/login', (req, res) => {
res.send('Hello World');
});
app.use((req, res) => {
res.status(404).send({ message: 'Not Found' });
});
app.listen(3000);
Com base no comportamento deste código, considere as seguintes requisições HTTP feitas ao servidor:
I. POST /login/auth HTTP/1.1
Authorization: Bearer XXX
II. GET /login HTTP/1.1
Authorization: XXX
III. POST /login HTTP/1.1
Authorization: Bearer XXX
IV. POST /login HTTP/1.1
Authorization: XXX
Dado o código apresentado, qual é o status de resposta esperado para cada uma das requisições listadas acima?