1.0.1 • Published 9 months ago

lxjhrq-auth v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

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): 返回验证结果,包含 isValiddecoded

createRsaKey()

生成 RSA 密钥对。

  • 返回:
    • (Object): 包含 privateKeypublicKey 的对象。
    • 可以将 privateKey 和 publicKey 生成pem的证书文件储存。
1.0.1

9 months ago

1.0.0

9 months ago