https://github.com/dvshu/signature
前后端通用接口签名:生成签名、组装签名字符、验证签名
https://github.com/dvshu/signature
Last synced: 2 months ago
JSON representation
前后端通用接口签名:生成签名、组装签名字符、验证签名
- Host: GitHub
- URL: https://github.com/dvshu/signature
- Owner: DvShu
- License: mit
- Created: 2025-03-13T15:21:11.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2025-03-13T17:43:59.000Z (2 months ago)
- Last Synced: 2025-03-13T18:42:10.414Z (2 months ago)
- Language: JavaScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Signature
使用 `JS` 封装的一套前后端通用的签名工具,包含:生成签名、验签
## 使用
### 1. 安装
```bash
npm install @asteres/signature
```### 2. 引入
```js
import {
generateSignature,
verifySignature,
generateSignatureHeader,
verifySignatureHeader,
} from "@asteres/signature";
```### 3. 使用
```js
const res = await generateSignature(...);
const res = await verifySignature(...);
```## API
### 生成签名
1. `generateSignature(): Promise` 生成签名
2. `generateSignatureHeader(): Promise` 生成签名并组装为请求头参数
### 验证签名
1. `verifySignature(): Promise` 验证签名
2. `verifySignatureHeader(): Promise` 验证签名头参数## 示例
1. 生成签名
```javascript
generateSignatureHeader({
appid: '', // APPID
secretKey: '', SECRET_KEY
url: '', // 请求地址
body: '', // 请求体, 可选, 只有在 POST 请求且有body时才传
query: {}, // URL 参数, 可选
method: 'GET', // 请求方法
withHashName: true, // 生成的请求头值是否带上签名算法: HMAC-SHA256
pairValue: false // 生成的请求头值是 a=1&b=2(true) 形式还是 1:2(false) 形式
})
```2. 验证签名
```javascript
verifySignatureHeader({
headerValue: signature, // 获取的签名头的值
getSecretkeyByAppid: async (appid) => {
return '';
}, // 根据appid 获取 secretKey
verifyTimestamp: true, // 是否验证时间戳, 防止重放攻击
timestampValidTime: 300, // 验证时间戳时,时间戳有效性:默认: 300s(5min)
withHashName: true,
pairValue: false,
url: '',
method: '',
body: '',
query: {}
});
```