jose
jose
是一个用于JSON对象签名和加密的JavaScript模块,支持JSON Web令牌(JWT)、JSON Web签名(JWS)、JSON Web加密(JWE)、JSON Web密钥(JWK)、JSON Web密钥集(JWKS)等功能。该模块设计用于在各种Web互操作运行时中使用,包括Node.js、浏览器、Cloudflare Workers、Deno、Bun等。
💗 帮助项目
欢迎社区支持继续维护和改进这个模块。如果您觉得这个模块有用,请考虑通过成为赞助者来支持该项目。
依赖:0
jose
没有依赖项,它输出可树摇的ESM。同时也支持CJS。
文档
jose
通过npmjs.com、deno.land/x、cdnjs.com、jsdelivr.com和github.com进行分发。
示例
ESM导入
import * as jose from 'jose'
示例
CJS require
const jose = require('jose')
JSON Web令牌(JWT)
jose
模块支持JSON Web令牌(JWT),提供签名和验证令牌的功能,以及JWT声明集验证。
- 使用
jwtVerify
函数进行JWT声明集验证和签名验证 - 使用
SignJWT
类进行签名 - 实用函数
- 解码令牌的受保护头部
- 在验证之前解码JWT声明集
加密的JSON Web令牌
jose
模块支持加密的JSON Web令牌,提供加密和解密令牌的功能,以及JWT声明集验证。
- 使用
jwtDecrypt
函数进行解密和JWT声明集验证 - 使用
EncryptJWT
类进行加密 - 实用函数
密钥实用工具
jose
模块支持导入、导出和生成各种格式的密钥和密钥,包括PEM格式如SPKI、X.509证书和PKCS #8,以及JSON Web密钥(JWK)。
- 密钥导入函数
- 密钥和密钥生成函数
- 密钥导出函数
JSON Web签名(JWS)
jose
模块支持使用紧凑、扁平化JSON和通用JSON序列化语法对具有任意有效载荷的JWS消息进行签名和验证。
JSON Web加密(JWE)
jose
模块支持使用紧凑、扁平化JSON和通用JSON序列化语法对具有任意明文的JWE消息进行加密和解密。
其他
以下是jose
模块提供的其他功能和实用工具:
实现的规范
jose
模块实现了以下规范:
- JSON Web签名(JWS) - RFC7515
- JSON Web加密(JWE) - RFC7516
- JSON Web密钥(JWK) - RFC7517
- JSON Web算法(JWA) - RFC7518
- JSON Web令牌(JWT) - RFC7519
- JSON Web密钥指纹 - RFC7638
- JSON Web密钥指纹URI - RFC9278
- JWS未编码有效载荷选项 - RFC7797
- CFRG椭圆曲线ECDH和签名 - RFC8037
- secp256k1 EC密钥曲线支持 - RFC8812
算法实现已使用其各自规范中的测试向量以及RFC7520进行了测试。
支持的运行时
jose
模块与支持所使用的Web API全局变量和标准内置对象的JavaScript运行时或Node.js兼容。
支持以下运行时(这不是一个详尽的列表):
请注意,某些算法可能因所使用的运行时而不可用。您可以在上面提供的特定问题链接中找到每个运行时可用的算法列表。