前言
一般需要登录的系统我们可以使用Token进行身份认证,但是如果不用登录,我们该如何验证接口请求的合理行呢?
一般来说我们可以把参数进行一定方式的加密生成签名,后端直接校验参数和签名是否匹配,匹配才能正常请求。
详情
注意点
要注意以下几点
- 因为对象的属性的顺序可能不一致,所以我们在生成签名的时候要进行Key排序。
- 对象可能多层嵌套,我们要把对象拍平。
- 对象拍平的时候要注意数组的处理。
multipart/form-data
请求要进行判断。
工具类
/assets/utils/sign_utils.js
1 | import md5 from "blueimp-md5"; |
使用
1 | import axios from "axios"; |
Tip
数据拍平
1 | function flattenObject(obj, parentKey = "", result = {}) { |
数据是这样的
1 | const nestedObj = { |
结果是这样的
1 | { |