Problema em receber o header de requisição http, API rest
26/08/2020
0
Olá, pessoal!
Estou criando uma API para um painel admin, onde o user ao se logar com e-mail e senha, recebe um token (Json Web Token). Criei um middleware para verificar se esse token está sendo recebido e se ele está no formato correto.
middleware a abaixo:
module.exports = function(request, response, next){
const auth= request.header.ok;
const jwt = require('jsonwebtoken');
const config = require('../config/auth.json');
//verificando a existência do token
if(!auth){
return response.status(401).send({ error: "You need a token"});
}
const tokenparts = auth.split(" ");
if(!(tokenparts.length == 2)){
return response.status(401).send({ error: "Token doesn't have 2 parts"});
}
const [pre, token ] = tokenparts;
if(!/^Bearer$/i.test(pre)){
return response.status(401).send({ error: "Wrong format"});
}
jwt.verify(token, config.code, function(error, decoded){
if(error){
return response.status(401).send({ error: "Invalid token"});
}
request.userOk.id = decoded.id;
return next();
})
};
Dentro do controller dos meus funcionários, criei uma rota teste (depois serão feitas consultas ao banco).
const express = require ('express');
const router = express.Router();
const authenticationMiddle = require('../middlewares/authenticationMiddle');
router.use(authenticationMiddle);
router.get('/index', (request, response) => {
response.send('listando todos os navers');
});
module.exports = function(app){
app.use('/navers', router)
};
Estou usando o Insomnia para realizar as requisições. Lá, eu crio um novo header, com o nome "ok", como defini lá no middleware e vou testando os valores do token. Mas, mesmo quando eu passo um valor, não recebo nada no header da requisição. O que estou fazendo de errado? Obrigada pela atenção.
Estou criando uma API para um painel admin, onde o user ao se logar com e-mail e senha, recebe um token (Json Web Token). Criei um middleware para verificar se esse token está sendo recebido e se ele está no formato correto.
middleware a abaixo:
module.exports = function(request, response, next){
const auth= request.header.ok;
const jwt = require('jsonwebtoken');
const config = require('../config/auth.json');
//verificando a existência do token
if(!auth){
return response.status(401).send({ error: "You need a token"});
}
const tokenparts = auth.split(" ");
if(!(tokenparts.length == 2)){
return response.status(401).send({ error: "Token doesn't have 2 parts"});
}
const [pre, token ] = tokenparts;
if(!/^Bearer$/i.test(pre)){
return response.status(401).send({ error: "Wrong format"});
}
jwt.verify(token, config.code, function(error, decoded){
if(error){
return response.status(401).send({ error: "Invalid token"});
}
request.userOk.id = decoded.id;
return next();
})
};
Dentro do controller dos meus funcionários, criei uma rota teste (depois serão feitas consultas ao banco).
const express = require ('express');
const router = express.Router();
const authenticationMiddle = require('../middlewares/authenticationMiddle');
router.use(authenticationMiddle);
router.get('/index', (request, response) => {
response.send('listando todos os navers');
});
module.exports = function(app){
app.use('/navers', router)
};
Estou usando o Insomnia para realizar as requisições. Lá, eu crio um novo header, com o nome "ok", como defini lá no middleware e vou testando os valores do token. Mas, mesmo quando eu passo um valor, não recebo nada no header da requisição. O que estou fazendo de errado? Obrigada pela atenção.
Julie Silveira
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)