Когда строка не строка при использовании JWT? - PullRequest
0 голосов
/ 18 апреля 2020

Я работаю с JWT и имею следующую функцию:

export async function decodeJwt(token: string): Promise<string> {
  console.log('token is a string: ', typeof token === 'string');
  const payload = await jwt.verify(token, RSA_PUBLIC_KEY);
  console.log('payload: ', payload);
  return payload;
}

Однако при вызове этого типа тип переменной token не является строкой. Другими словами, первая строка сообщает, что token не является строкой.

Как это вообще возможно?

Причина, по которой я проверяю, состоит в том, что вызов jwt.verify() возвращает ошибку:

 jwt must be a string

Это странно, потому что я звоню это со строковым значением для token здесь:

async function handleSessionCookie(token: string, req: Request) {
  try {
    const payload = await decodeJwt(token);
    console.log('payload: ', payload);
    req['userId'] = payload.sub;
  } catch (err) {
    console.log('handleSessionCookie Error: Could not extract user from the request: ', err.message);
  }
}

Это все строки.

Что происходит?

1 Ответ

0 голосов
/ 18 апреля 2020

Я считаю, что token - пустая строка в

export async function decodeJwt(token: string): Promise<string> {

Вы можете проверить?

...