Прежде всего, при условии, что вы используете ExpressJS
Я предлагаю использовать express-jwt
промежуточное программное обеспечение для обработки аутентификации запросов и выдачи новых токенов.
Что нужно иметь впомните, что вам нужно включить userId
, когда вы аутентифицируете пользователя в полезной нагрузке JWT, чтобы потом иметь возможность извлечь его из полезной нагрузки.
Когда пользователь аутентифицирован, вы должны сохранитьтокен в состоянии вашей заявки или в localStorage
или sessionStorage
.
Если вы хотите декодировать токен на внешней стороне и затем отправить его в API, вы можете использовать простой модуль под названием jwt-decode
, чтобы добиться этого:
const jwtDecode = require("jwt-decode");
const token = window.localStorage.getItem("token"); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWQiOiIxMjM0NTY3ODkiLCJpYXQiOjE1MTYyMzkwMjJ9.gHqSxzWpdOUL1nRAqUJg2CtjsEZZi8FLikD41i639zY
const tokenPayload = jwtDecode(token).id; // "123456789"
Имейте в виду, что в случае, если вы решили использовать express-jwt
, вам также необходимо отправить токен в заголовках запроса как authorization
для аутентификации.Надеюсь, поможет.:)