@polyv/request-plugin-sm2
v2.8.1
Published
用途:SM2 加密插件,用于对请求和响应数据进行国密 SM2 加密和解密处理。
Readme
SM2RequestPlugin
用途:SM2 加密插件,用于对请求和响应数据进行国密 SM2 加密和解密处理。
实例化参数
| 参数名 | 用途 | 类型 | 默认值 |
| ---------------------------- | --------------------------------- | ---------- | ------ |
| platformPublicKey | 平台公钥(接口提交参数加密用) | string | - |
| userPrivateKey | 用户私钥(接口响应内容解密用) | string | - |
| includeIgnoreEncryptFields | 额外的忽略加密字段 | string[] | - |
| useSM2 | 是否使用 SM2 加密 | boolean | true |
| encryptPostSM2 | 是否对 POST 请求主体进行 SM2 加密 | boolean | true |
请求选项
| 参数名 | 用途 | 类型 | 默认值 |
| ---------------- | --------------------------------- | --------- | ------ |
| useSM2 | 是否使用 SM2 加密 | boolean | true |
| encryptPostSM2 | 是否对 POST 请求主体进行 SM2 加密 | boolean | true |
使用方式
import { PolyvRequest } from '@polyv/request-core';
import { SM2RequestPlugin } from '@polyv/request-plugin-sm2';
// 基础用法:提供平台公钥和用户私钥
const requester = new PolyvRequest({
requestPlugins: [
new SM2RequestPlugin({
platformPublicKey: 'yourPlatformPublicKey',
userPrivateKey: 'yourUserPrivateKey',
}),
],
});
// 配置额外的忽略加密字段
const requester = new PolyvRequest({
requestPlugins: [
new SM2RequestPlugin({
platformPublicKey: 'yourPlatformPublicKey',
userPrivateKey: 'yourUserPrivateKey',
includeIgnoreEncryptFields: ['customField1', 'customField2'],
}),
],
});
// 此时请求时,被忽略的字段不会加入到加密内容中
requester.post(
'/api/data',
{
customField1: 'abc',
},
{
params: {
customField2: 'def',
},
},
);
// 禁用 POST 请求主体加密
const requester = new PolyvRequest({
requestPlugins: [
new SM2RequestPlugin({
platformPublicKey: 'yourPlatformPublicKey',
userPrivateKey: 'yourUserPrivateKey',
encryptPostSM2: false,
}),
],
});
// 在某个请求中禁用 SM2 加密
requester.get(
'/api/data',
{},
{
useSM2: false,
},
);
// 在某个请求中禁用 POST 请求主体加密
requester.post(
'/api/data',
{ name: 'test' },
{
encryptPostSM2: false,
},
);