Об этом проекте
jsonwebtoken — широко используемая реализация JSON Web Tokens (RFC 7519) для Node.js, разработанная Auth0. Она обеспечивает безопасную аутентификацию и авторизацию на основе токенов в приложениях Node.js.
Ключевые возможности:
- **Подпись токена (jwt.sign)**: создание JWT с утверждениями полезной нагрузки (exp, nbf, aud, iss, sub, jti, iat) с использованием симметричных (HMAC) или асимметричных (RSA, ECDSA, RSA-PSS) алгоритмов. Поддерживает синхронную и асинхронную работу. Параметры включают выбор алгоритма (по умолчанию HS256), сроки действия (expiresIn, notBefore), пользовательские заголовки, идентификаторы ключей и разрешение небезопасных размеров ключей для устаревших ключей RSA.
- **Проверка токена (jwt.verify)**: проверка подписей и утверждений токена. Принимает секреты, открытые ключи PEM или функцию обратного вызова для получения ключа (полезно с конечными точками JWKS). Проверяет алгоритмы, аудиторию, издателя, идентификатор JWT, субъект, срок действия (с clockTolerance), not-before и максимальный возраст токена. Возвращает декодированную полезную нагрузку или полный объект токена (заголовок, полезная нагрузка, подпись), если установлен параметр complete.
- **Декодирование токена (jwt.decode)**: просмотр полезной нагрузки и заголовка токена без проверки подписи (не для ненадёжного ввода).
- **Поддерживаемые алгоритмы**: HS256, HS384, HS512 (HMAC); RS256, RS384, RS512 (RSASSA-PKCS1-v1_5); PS256, PS384, PS512 (RSASSA-PSS, Node ≥6.12.0/≥8.0.0); ES256, ES384, ES512 (ECDSA); и "none" (без защиты).
- **Обработка ошибок**: отдельные типы ошибок (TokenExpiredError, JsonWebTokenError, NotBeforeError) с подробными свойствами для программной обработки.
- **Примечания по безопасности**: по умолчанию требуется модуль RSA не менее 2048 бит; поддерживаются секреты в кодировке base64 через Buffer.from; полезные нагрузки из ненадёжных источников следует очищать.
Библиотека распространяется по лицензии MIT, поддерживается Auth0 и интегрируется с решениями для управления ключами, такими как node-jwks-rsa, для ротации ключей. Для обновлений между основными версиями существуют руководства по миграции.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.