Как получить идентификатор пользователя с помощью токена jwt - PullRequest
0 голосов
/ 25 июня 2019

Я попытался получить идентификатор пользователя с помощью токена jwt. Я получил токен jwt и успешно его проверил. Но он не возвращает идентификатор, он возвращает {iat: 1561463667}

JWT код

 const decoded = jwt.verify(token, config.get('jwtPrivateKey'));  
            var userId = decoded.id  
            console.log(decoded)  

Я получил вывод

{ iat: 1561463667 }

Исключенный выход

id :"*****************"

1 Ответ

1 голос
/ 25 июня 2019

Когда весь вывод равен { iat: 1561463667 }, это означает, что при подписании токена не было добавлено никаких дополнительных полезных данных / утверждений. Пакет j sonwebtoken обычно добавляет iat (Командлет Атт) в качестве заявки по умолчанию. Это время, когда токен был выпущен.

Проще говоря: вы можете декодировать только те утверждения, которые были добавлены ранее.

Чтобы добавить больше утверждений, попробуйте этот код (когда вы контролируете код, который выдает токен):

let payload = { "id" : "1"};
let token = jwt.sign( payload,'secret',  { noTimestamp:true, expiresIn: '1h' });

здесь я добавил время истечения (exp) и установил параметр noTimestamp для подавления автоматически добавленной заявки iat.

Результат выглядит так:

{
 "id": "1",
 "exp": 1561471747
}

и токен:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJleHAiOjE1NjE0NzI0MzV9.jmKyITRoxLl0fy0-rrwgPOA_iRgGQu8W4Cc6dPupOMA

Вы также можете вставить этот или свой токен в отладчик https://jwt.io, чтобы проверить токен.

...