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

TypeError: jwt_decode__WEBPACK_IMPORTED_MODULE_2__ is not a function

Não é uma dúvida e sim mais uma possível solução para quem esta no modulo Angular parte 2: Autenticação, Forms e lazy loading - Separação de responsabilidades

No no vídeo é passado o módulo jwt-decode e se caso você estiver usando a versão mais recente e não funcionar, gerando um erro similar ao título deste tópico

TypeError: jwt_decode__WEBPACK_IMPORTED_MODULE_2__ is not a function,

você pode utilizar o método do js atob() Base64 - método atob()

A referência para esta solução foi encontrada neste link do Stackoverflow - How to decode jwt token in javascript without using a library?

O código fica assim:

import { UserInterface } from './user.interface';
import { Subject } from 'rxjs';
import { TokenService } from './../token/token.service';
import { Injectable } from '@angular/core';


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

  private userSubject = new Subject<UserInterface>();


  constructor(private tokenService: TokenService) {
    if (this.tokenService.hasToken()) {
      this.decodeAndNotify();
    }
  }

  setToken(token: string) {
    this.tokenService.setToken(token)
    this.decodeAndNotify()
  }

  getUser() {
    return this.userSubject.asObservable();
  }

  private decodeAndNotify() {
    const token = this.tokenService.getToken()
    const user = this.decode(token) as UserInterface;
    this.userSubject.next(user);
  }

  // Decode sem o modulo jwt-decode
  private decode(token: string) {
    try {
      return JSON.parse(atob(token.split('.')[1]));
    } catch (e) {
      console.log(`Nao foi possivel decodificar o token`)
    }
  }
}
2 respostas
solução!

Fala Angelo, tudo bem? Muito bom, obrigado pela sugestão, com certeza vai ajudar muitos alunos e alunas.

Abraços e bons estudos.

Valeu, Angelo! Meu sistemas estava com esse erro!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software