Express-jwt против jsonwebtoken

У меня такое чувство, что это будет быстрый ответ, но я не могу найти никаких окончательных ответов в Интернете. В чем разница между пакетом jnswebtoken npm и пакетом express-jwt npm? Я думаю, что express-jwt написан поверх jsonwebtoken и просто проверяет входящие токены и устанавливает req.user в пользовательскую полезную нагрузку на JWT.

Это правильно? Извините, если это общий вопрос noob... Я только начал изучать аутентификацию и node/express, поэтому все это для меня довольно ново.

Ответ 1

Возвращаясь к этому много месяцев спустя. В случае, если это полезно для всех, express-jwt построен поверх пакета jsonwebtoken и выполняет кучу дополнительных интересных вещей. Вы все еще используете jsonwebtoken для подписи и проверки своих JWT, но express-jwt помогает вам защищать маршруты, проверяет JWT на секрет и создает req.user из полезной нагрузки токена, если он может его проверить.

tl; dr: express-jwt использует jsonwebtoken в своем собственном коде и добавляет дополнительную аккуратность.

Ответ 2

Express-JWT - это просто библиотека для Express, которая проверяет/подписывает токены json, которые могут использоваться с экспресс-сервером (промежуточным программным обеспечением). JsonWebTokens - это еще одна реализация токенов json web. Есть много других библиотек токенов JWT, которые можно реализовать с помощью node. Express-jwt - лишь один из них. Они оба по сути делают то же самое, и вы можете использовать либо или. Ни один из них не построен поверх друг друга, они строятся с использованием стандарта JWT. Выберите тот, который наилучшим образом соответствует вашим требованиям.