Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Autenticação: Token enviado pelo navegador é recebido pelo Node como "Undefined"

Estou fazendo alguns testes com uma instância rodando o Node.js no Heroku, e o código da aplicação Angular.js em outro domínio. Para o jwt ser enviado para o navegador, tive que habilitar o CORS(Cross-Origin Resource Sharing), conforme abaixo:

var allowCors = function(req, res, next){

    res.header('Access-Control-Allow-Origin', 'http://localhost');
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, Authorization, x-access-token');
    res.header('Access-Control-Expose-Headers', 'x-access-token');
    res.header('Access-Control-Request-Headers', 'Content-Type, X-Requested-With, Authorization, x-access-token');
    res.header('Access-Control-Allow-Credentials','true');
    next();

}

app.use(allowCors);

O problema está ocorrendo ao ser feito o caminho inverso: O node.js não está recebendo o token enviado no header de requisição. Alguém já passou por isso? Poderiam me ajudar? Agradeço desde já.

4 respostas

Carlos durante o curso recebi bastante a mensagem de undefined referente ao jwt, depois de muito procurar o erro estava no meu código onde havia informado o nome errado "x-access-token" e algumas sintaxe incorreta no código.

Poste seu código para que a gente possa dar uma olhada, talvez seja o mesmo problema.

solução!

Pessoal, acabei encontrando uma solução. Aparentemente não havia nada errado com a lógica do Angular.js nem do Node.js. Realizei alguns testes no Localhost com o Postman e o token estava sendo recebido normalmente pelo Node.js. Então deixei de tentar fazer as configurações do CORS 'na mão', e utilizei um middleware também chamado "CORS". Segue link abaixo para alguém que se interesse: https://www.npmjs.com/package/cors#enabling-cors-pre-flight

Fica a dica para quem passa pela mesma situação. Abraço!

É Matheus, acabei encontrando a solução aqui. Também havia errado algumas vezes o nome x-access-token, mas desta vez a solução foi essa que mencionei. Mesmo assim, muito obrigado pela resposta.

Que isso, sempre que precisar não deixe de criar suas dúvidas.