Я работаю с 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);
}
}
Это все строки.
Что происходит?