通过签名防止用户使用脚本伪造请求,具体签名过程可见 标准签名流程 通过加密防止错误证书信任造成敏感数据泄漏,具体加密过程可见 数据传输与存储安全规范 尽管前端有泄漏密钥和加密方法的可能性,但通过代码的混淆等能防御大部分用户。
npm
npm install @blazes/crypto
yarn
yarn add @blazes/crypto
名称 | 说明 | 入参 | 回参 |
---|---|---|---|
setSecret | 设置全局的签名和加密密钥 | { encrypto?: string; sign?: string;} | void |
encrypt | 加密 | text, secret | string |
decrypt | 解密 | text, sceret | string |
sign | 签名 | ISignOption | string |
方法中的 sceret 参数可覆盖全局的密钥
属性 | 说明 | 类型 | |
---|---|---|---|
verb | 请求方法 | string | |
path | 后端 API 路径,以/ 开头,不包含?
|
string | |
host | 主机名,不包含协议名 | string | |
header |
x-yh- 开头的请求头 |
string | |
body | 请求参数,如果是文件,可传入formData
|
string | FormData | |
query |
url 里? 后面的参数 |
string |
提供了 axios 拦截器,注册后,可自动添加YH {Authoriztion}
。
instantce.interceptors.request.use((config) => {
return intercepeReq(host, config);
});
注意以下几点
- 由于后端的
host
和前端域名不一致,需要手动传入。 - 目前
path
从config
中读取,未拼接baseUrl