Estou trabalhando num sisteminha pra controlar o horário de alimentação dos meus doguinhos, apenas para estudo, entretanto estou tendo um pequeno problema com o sistema de login, apesar dele verificar se o usuário está logado e proteger os recursos, quando envio uma requisição sem o header "auth" com o JWT, além dele mandar a response com o status 401 de não autorizado, ele também tenta mandar a response com status 500, o que imprime um erro no console. A aplicação funciona normalmente, mas gostaria de remover esse erro de alguma forma.
Esse é o método que valida o login, caso o token não seja enviado ela responde a requisição com um 401.
static async verifyLogin(req, res){
try{
const decoded = await JwtHelper.verifyJwt(req.headers.auth);
return decoded;
}catch(error){
res.status(401).send({ error: "Efetue o login antes de prosseguir." });
}
}
Esse é um exemplo de método do controler.
async getAll(req, res){
try {
const loginData = await LoginHelper.verifyLogin(req, res);
const ownerId = loginData.user.id;
let dogs = await this._dogDao.findAll({ ownerId });
dogs = ListHelper.createListCheckingActive(dogs, DogFactory.createFromMongo);
res.status(200).send(dogs);
}catch(error){
res.status(500).send({ error: "Não foi possível carregar os cachorros."})
}
}
Gostaria de saber alguma forma de contornar essa situação, se há como, por exemplo, o erro só cair no "catch" do verificador de login e o método no qual ele é utilizado simplemente parar a execução quando ele ocorre.