машинописный текст jwt.verify не может получить доступ к данным - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь использовать JWT с nodejs.Моя проблема в том, что я не могу прочитать данные из функции проверки jwt.Я использую его следующим образом:

    //encode when logging in
    const token = jwt.sign(
        { user: user },
        'secret'
    );


    // decode when fetching the user from token
    const decoded = jwt.verify(req.body.jwtToken, 'secret');
        return res.send({
             user: decoded.user // <-- error here
        });

Вот типирование для метода verify:

   export declare function verify(
       token: string,
       secretOrPublicKey: string | Buffer,
   ): object | string;

linter Ошибка: свойство пользователя не существует в typeof "object | string".

как мне получить данные из декодированного токена?

Ссылка на документацию библиотеки

1 Ответ

0 голосов
/ 07 июня 2018

При использовании Typescript вы должны помнить, что все набрано, как, например, в Java или C #.object - это суперкласс, который не знает о свойстве user.

Хотя этот код действителен в javascript (вы смотрите документацию по javascript), его нет в машинописи.

Чтобы исправить эту ошибку, приведите декодированный токен, используя any.

return res.send({
    user: (<any>decoded).user
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...