简介
koa签名组件,包含签名赋请求头中间件与纯签名函数
安装&配置
$ npm i koa-sign --save
使用
中间件,会在之后的ctx.request.headers上添加签名参数,供代理使用
// {root}/server/index.js
const signMiddleware = require('koa-sign').middleware;
app.use(signMiddleware([
{
context:'/gateway-api', // 代理关键字
appkey:'12345678', // 相对应的appkey
secretkey:'87654321', // 相对应的secretkey
},
{
context:'/dashboard-api',
appkey:'000111222',
secretkey:'333444555',
}
]));
签名函数,传入参数返回签名值sign
参数顺序 | 参数名 | 参数类型 | 对象内参数 | 对象内参数类型 | 描述 | 是否必填 | 默认值 |
---|---|---|---|---|---|---|---|
1 | path | String | 访问路径 | 是 | |||
2 | timestamp | Number | 时间戳 | 是 | |||
3 | params | Object | method | String | 访问类型 | 否 | "GET" |
3 | params | Object | token | String | token令牌 | 否 | "" |
3 | params | Object | query | Object | queryString | 否 | {} |
3 | params | Object | body | Object | body | 否 | |
4 | keyParams | Object | appkey | String | appkey | 是 | |
4 | keyParams | Object | secretkey | String | secretkey | 是 |
const signature = require('koa-sign').signature;
const timestamp = Date.now();
/**
* akmg签名算法
* @param path 访问路径
* @param timestamp 时间戳
* @param params 访问参数(method、token、query、body)
* @param keyParams 密钥参数(appkey、secretkey)
* @returns sign 签名值
*/
const sign = signature('/vehicle/addVeh', timestamp, {
method:'POST',
token:'',
query:{
vin:'LS123123',
},
body:{
brandId:1,
seriesId:2,
}
},{
appkey:'12345678',
secretkey:'87654321',
})