1.0.1 • Published 9 months ago
lxjhrq-auth v1.0.1
LxjhrqAuth - 签名工具类
LxjhrqAuth
是一个用于生成和验证数字签名的工具类,支持字符串和 Base64 编码的密钥输入,以确保数据的完整性和真实性。
特性描述
- 生成 RSA 密钥对
- 基于私钥生成 Token
- 使用 RSA 密钥生成 Token
- RSA 公钥验证 Token
- 私钥验证 Token
参考作用
验证服务器使用RSA 私钥对中的私钥生成 Token,客户端使用公钥验证 Token。这样可以实现多重客户端的身份验证。
安装
确保您已安装 Node.js。然后,您可以通过 npm 或 yarn 安装依赖项:
npm install
# 或者
yarn install
使用示例
引入
const LxjhrqAuth = require('lxjhrq-auth');
const auth = new LxjhrqAuth();
生成 RSA 密钥对
const { privateKey, publicKey } = auth.createRsaKey();
console.log('私钥:', privateKey);
console.log('公钥:', publicKey);
根据私钥生成 Token
const token = auth.generateTokenByPrivateKey({ userId: 1 }, privateKey, '4h', true);
console.log('生成的 Token:', token);
使用 RSA 公钥验证 Token
const verificationResult = auth.verifyTokenByPublicKey(token, publicKey, true);
console.log('验证结果:', verificationResult);
使用秘钥生成 Token
const token = auth.generateTokenBySecretKey({ userId: 1 }, privateKey, '4h', true);
console.log('生成的 Token:', token);
使用秘钥验证 Token
const verificationResult = auth.verifyTokenBySecretKey(token, privateKey, true);
console.log('验证结果:', verificationResult);
API 文档
generateTokenByPrivateKey(object, privateKey, expiresIn, isBase64)
使用 RSA 密钥对中的私钥生成 Token。
参数:
object
(Object): 签名对象。privateKey
(String): 私钥。expiresIn
(String): 签名有效期(例如:1s
,1m
,1h
,1d
)。isBase64
(Boolean): 是否返回 Base64 编码的 Token。
返回:
- (String): 返回生成的 Token。
generateTokenBySecretKey(object, secretKey, expiresIn, isBase64)
根据私钥生成 Token。
参数:
object
(Object): 签名对象。secretKey
(String): 密钥。expiresIn
(String): 签名有效期(例如:1s
,1m
,1h
,1d
)。isBase64
(Boolean): 是否返回 Base64 编码的 Token。
返回:
- (String): 返回生成的 Token。
verifyTokenByPublicKey(token, publicKey, isBase64)
RSA 公钥验证 Token。
参数:
token
(String): Base64 编码的 Token。publicKey
(String): 公钥。isBase64
(Boolean): 是否是 Base64 编码的 Token。
返回:
- (Object): 返回验证结果对象。
verifyTokenBySecretKey(token, secretKey, isBase64)
秘钥验证 Token。
参数:
token
(String): Token。secretKey
(String): 私钥。isBase64
(Boolean): 是否是 Base64 编码的 Token。
返回:
- (Object): 返回验证结果,包含
isValid
和decoded
。
- (Object): 返回验证结果,包含
createRsaKey()
生成 RSA 密钥对。
- 返回:
- (Object): 包含
privateKey
和publicKey
的对象。 - 可以将 privateKey 和 publicKey 生成pem的证书文件储存。
- (Object): 包含