как декодировать токен в angular 9

#angular #typescript

#angular #typescript

Вопрос:

Я хочу декодировать токен. Но я пойду с предупреждением.

 npm install jwt-decode --save
  

component.ts:

     import * as jwt_decode from 'jwt-decode';
    .
    .
    .
    console.log("Yes");
    localStorage.setItem('token', res.token);
    this.flagProgressBar = false;
    console.log('res.token: ');
    console.log(res.token);        
    console.log('localStorage token:');
    console.log(localStorage.getItem('token'));
    const tokene = res.token;
    const decoded = jwt_decode(tokene);
    console.log(tokene);
    console.log(decoded);
  

консоль:

         Yes
        res.token: 
      eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvnQuY29tL3dzLzIwMgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJGdWxsQWRtaW4iLCJleHAiOjE2MDM5MjEzNzMsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzU0In0.-e7cYAgQQVTcHlPrw1sWn6IsjhVPfjlItx9XGIn3S9w

localStorage token:    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5WNybNvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJGdWxsQWRtaW4iLCJleHAiOjE2MDM5MjEzNzMsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzU0In0.-e7cYAgQQVTcHlPrw1sWn6IsjhVPfjlItx9XGIn3S9w

ERROR TypeError: jwt_decode__WEBPACK_IMPORTED_MODULE_2__ is not a function
at SafeSubscriber.Service.postDataLogin.subscribe.flagProgressBar [as _next]
  

Можно ли сказать, в чем моя проблема?

Комментарии:

1. Не могли бы вы показать, как вы импортируете эту jwt_decode функцию?

Ответ №1:

Для более новой версии (3 и выше):

jwt_decode импортирован неправильно попробуйте это import jwt_decode from 'jwt-decode';

Ответ №2:

Быстрые примеры шагов приложения, чтобы начать работу с декодированием jwt:

  1. Установить пакет https://github.com/auth0/jwt-decode#readme
  2. Импортируйте зависимость в свой сервис: импортируйте * как jwt_decode из ‘jwt-decode’;
  3. Попробуйте этот пример кода
 // Use valid jwt token;
var token = 'eyJ0eXAiO...';
var decoded = jwt_decode(token); 
console.log(decoded);
  

Ошибка, о которой вы сообщили, в основном возникает, если шаги 1 и 2 выполняются неправильно.

Комментарии:

1. импортируйте jwt_decode из «jwt-decode»; Замените import * как jwt_decode из «jwt-decode»;

Ответ №3:

Это для более старых версий

 import * as jwt_decode from "jwt-decode";
  

Для более новой версии (3 и выше):

 import jwt_decode from 'jwt-decode';