6
respostas

Token invalido

Quando faço a chamada para a autenticação do usuário, após a implementação do token, recebo o erro de token invalido

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Entretanto dentro do meu Response Header o mesmo é retornado

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O meu AutenticacaoService esta assim


import { HttpClient, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
import { UsuarioService } from './usuario.service';

@Injectable({
  providedIn: 'root'
})
export class AutenticacaoService {

  constructor(private httpClient : HttpClient,private usuarioService:UsuarioService) { }

  autenticar(usuario:string, senha:string): Observable<HttpResponse<any>>{
    return this.httpClient.post('http://localhost:8080/royale/account/auth',{
      user: usuario,
      password: senha
    },{
      observe:'response'
    } ).pipe(
      tap((res)=> {
        const authToken = res.headers.get('x-access-token') ?? '';
        console.log("Token = " + authToken);
        this.usuarioService.salvaToken(authToken);
      })
    )
  }
}

Porem o console log dele esta retornando vazio. Sendo que estou pegando o x-access-token.

Alguma sugestão?

6 respostas

Bom dia. Alguém consegue me dar esse help? Parei nesse ponto e não estou conseguindo evoluir. Obrigado :)

Olá Willian,

Por favor envie o código dos arquivos usuario.service.ts, token.service.ts e o package.json, que vamos investigar o que está havendo e pensar em uma solução, tudo bem?

Até breve.

Bom dia Nayanne Segue UsuarioService

import { Injectable } from '@angular/core';
import { TokenService } from './token.service';
import { Usuario } from './usuario/usuario';
import jwt_decode from 'jwt-decode';
import { BehaviorSubject } from 'rxjs';
@Injectable({
  providedIn: 'root'
})
export class UsuarioService {

  private usuarioSubject = new BehaviorSubject<Usuario>({});

  constructor(private tokenService : TokenService) {
    if(this.tokenService.possuiToken()){
      this.decodificaJWT();
    }
  }

 private decodificaJWT(){
    const token = this.tokenService.retornaToken();
    const usuario = jwt_decode(token) as Usuario;
    this.usuarioSubject.next(usuario);
  }

  retornaUsuario(){
    return this.usuarioSubject.asObservable();
  }

  salvaToken(token:string) {
    this.tokenService.salvaToken(token);
    this.decodificaJWT();
  }

  logout(){
    this.tokenService.excluiToken();
    this.usuarioSubject.next({});
  }

  estaLogado(){
    return this.tokenService.possuiToken();
  }


}

Token Service

import { Injectable } from '@angular/core';

const KEY = 'token';

@Injectable({
  providedIn: 'root'
})
export class TokenService {

  retornaToken(){
    return localStorage.getItem(KEY) ?? '';
  }

  salvaToken(token : string){
    localStorage.setItem(KEY,token);
  }

  excluiToken(){
    localStorage.removeItem(KEY);
  }

  possuiToken(){
    return !!this.retornaToken();
  }

}

Package.Json

{
  "name": "skote-angular-vertical",
  "version": "1.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "build-prod": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng build --prod"
  },
  "private": true,
  "dependencies": {
    "-": "^0.0.1",
    "@agm/core": "^1.1.0",
    "@angular/animations": "^13.0.2",
    "@angular/common": "~13.0.2",
    "@angular/compiler": "~13.0.2",
    "@angular/core": "~13.0.2",
    "@angular/fire": "^6.1.5",
    "@angular/forms": "~13.0.2",
    "@angular/localize": "^13.0.2",
    "@angular/platform-browser": "~13.0.2",
    "@angular/platform-browser-dynamic": "~13.0.2",
    "@angular/router": "~13.0.2",
    "@ckeditor/ckeditor5-angular": "^2.0.1",
    "@ckeditor/ckeditor5-build-classic": "^26.0.0",
    "@fullcalendar/angular": "^5.8.0",
    "@fullcalendar/bootstrap": "^5.8.0",
    "@fullcalendar/core": "^5.8.0",
    "@fullcalendar/daygrid": "^5.8.0",
    "@fullcalendar/interaction": "^5.8.0",
    "@fullcalendar/list": "^5.8.0",
    "@fullcalendar/timegrid": "^5.8.0",
    "@ng-bootstrap/ng-bootstrap": "^10.0.0",
    "@ng-select/ng-select": "^7.0.0",
    "@ngx-translate/core": "^13.0.0",
    "@ngx-translate/http-loader": "^6.0.0",
    "@nicky-lenaers/ngx-scroll-to": "^9.0.0",
    "@types/chartist": "^0.11.0",
    "angular-archwizard": "^7.0.0",
    "apexcharts": "^3.27.1",
    "bootstrap": "^5.1.3",
    "bs-custom-file-input": "^1.3.4",
    "chart.js": "^2.9.4",
    "chartist": "^0.11.4",
    "echarts": "^5.1.2",
    "firebase": "^8.6.8",
    "g": "^2.0.1",
    "jwt-decode": "^3.1.2",
    "metismenujs": "^1.2.1",
    "ng-apexcharts": "^1.5.12",
    "ng-chartist": "^4.1.0",
    "ng-click-outside": "^8.0.0",
    "ng-otp-input": "^1.7.1",
    "ng2-charts": "^2.4.2",
    "ng2-completer": "^9.0.1",
    "ng2-search-filter": "^0.5.1",
    "ng2-smart-table": "^1.7.2",
    "ng5-slider": "^1.2.6",
    "ngx-chartist": "^1.0.3",
    "ngx-color-picker": "^11.0.0",
    "ngx-cookie-service": "^11.0.2",
    "ngx-drag-drop": "^2.0.0",
    "ngx-dropzone": "^3.0.0",
    "ngx-dropzone-wrapper": "^10.0.1",
    "ngx-echarts": "^6.0.1",
    "ngx-image-cropper": "^3.3.5",
    "ngx-lightbox": "^2.4.0",
    "ngx-mask": "^12.0.0",
    "ngx-owl-carousel-o": "^6.0.0",
    "ngx-ui-switch": "^10.0.2",
    "ngx-youtube-player": "^9.1.0",
    "resize-observer-polyfill": "^1.5.1",
    "rxjs": "~6.6.6",
    "sass-loader": "^11.1.1",
    "simplebar-angular": "^2.3.4",
    "sweetalert2": "^11.0.18",
    "tslib": "^2.3.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^13.0.3",
    "@angular/cli": "^13.3.0",
    "@angular/compiler-cli": "~13.0.2",
    "@angular/language-service": "~13.0.2",
    "@juggle/resize-observer": "^3.3.1",
    "@types/echarts": "^4.9.8",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^15.12.4",
    "codelyzer": "^6.0.0",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~7.0.0",
    "typescript": "~4.4.4"
  }
}

Estava com o mesmo problema, porem entrei no navegador e apaguei tudo o que estava armazenado no localStorage e voltei a rodar a aplicação e voltou a funcionar.

Bom dia André, Então, tentei apagar tudo que estava no localStorage, mas sem sucesso também... Qual navegador vc utilizou?

Boa noite pessoal, tudo bem? Não consigo dar prosseguimento ao curso devido a este problema... Deixo aqui os repositórios respectivamente da API e do Front para análise... não consigo evoluir sem entender o porque desse comportamento.

API Rest Java https://github.com/WillianGarsetta/royale-api.git

Front Angular - https://github.com/WillianGarsetta/FrontRoyale.git