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

Meu token não consta no header da response

Olá professor segui o passo a passo da aula da criação de token em um projeto WebApi com aspnet Core 2.1, nos testes que estou realizando no Postman o token não consta no header da response que foi 200 Ok. Precisava deste token no header para minha aplicação externa comunicar com minha api, alguma idéia por onde começar?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
3 respostas

Fala, Alberto, bom dia.

Só pra entender melhor sua dúvida, vc está querendo obter o token para usá-lo em futuras requisições, é isso?

Nesse caso o token virá como resposta da requisição

POST http://localhost:5000/api/login

Se a resposta deu status 200, significa que ela foi bem sucedida. Pode ser que o Postman não esteja mostrando a região de repostas adequadamente. Use a barra de rolagem pra subir a região de respostas e pegar o token.

Espero que tenha ajudado. Se não foi essa a dúvida, por favor coloque mais detalhes para eu ajudá-lo.

Abraços!

Olá professor, é isso mesmo que preciso, obter o token para usá-lo. Estou cursando angular aqui na Alura utilizando web api que também estou cursando na Alura. No curso do Angular estamos recebendo o token e armazenando desta forma:

const authToken = res.headers.get('x-access-token');

Mas no meu exemplo não consigo obter pois não existe nada no header, no api de exemplo do curso feito em NodeJs contém a informação no header, pelo que pesquisei a instrução no NodeJS está:

if(user) {
        console.log(`User ${userName} authenticated`);
        console.log('Authentication Token added to response');
        const token = jwt.sign(user, req.app.get('secret'), {
            expiresIn: 86400 // seconds, 24h
        });
        res.set('x-access-token', token);
        return res.json(user);
solução!

Desculpe o backend esta correto retornando inclusive o token, na aplicação de front que eu não estava sabendo capturar o valor. O correto é:

  authenticated(username: string, password: string){
    return this.http.post<any>(API_URL+'/api/logar', { username, password })
    .pipe(map(user => {
      //login sucessfull
      this.menuEmitter.emit(true);
      if(user && user.token){
        const authToken = user.token;
        console.log("meu token: " + authToken);
        // store user details and jwt token in local storage to keep user logged in between page refreshes        
        localStorage.setItem('currentUser', JSON.stringify(user));
      }
      return user;
    }));
  }

Um site que me ajudou muito foi: http://jasonwatmore.com/post/2018/05/23/angular-6-jwt-authentication-example-tutorial