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?

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