このプロジェクトについて

jsonwebtokenは、Auth0が開発した広く使用されているNode.js向けのJSON Web Token(RFC 7519)実装です。Node.jsアプリケーションで安全なトークンベースの認証と認可を可能にします。 主な機能: - **トークン署名(jwt.sign)**:対称(HMAC)または非対称(RSA、ECDSA、RSA-PSS)アルゴリズムを使用して、ペイロードクレーム(exp、nbf、aud、iss、sub、jti、iat)を含むJWTを作成します。同期および非同期操作をサポートします。オプションには、アルゴリズムの選択(デフォルトはHS256)、有効期限(expiresIn、notBefore)、カスタムヘッダー、キーID、レガシーRSAキー用の安全でないキーサイズの許可が含まれます。 - **トークン検証(jwt.verify)**:トークンの署名とクレームを検証します。シークレット、PEM公開鍵、またはキー取得コールバック(JWKSエンドポイントで有用)を受け入れます。アルゴリズム、オーディエンス、発行者、JWT ID、サブジェクト、有効期限(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)。 - **セキュリティ上の注意**:デフォルトで最小2048ビットのRSAモジュラスが強制されます。Buffer.fromを介してbase64エンコードされたシークレットがサポートされます。信頼できないソースからのペイロードはサニタイズする必要があります。 このライブラリはMITライセンスで、Auth0によって保守されており、キーのローテーションのためにnode-jwks-rsaなどのキー管理ソリューションと統合されています。メジャーバージョンアップグレード用の移行ガイドが存在します。