需求
因为安全的需要,很多时候我们访问接口的时候需要进行验签,而用于验签的信息是需要存入请求头的
业务逻辑如下:
- 登录并获取用户信息
- 将用户信息存入全局变量中
- 其他业务访问接口
- 拦截请求,并将需要的验签信息存入到请求头里面
- 放行
官方文档是这么写的
$interceptors:List:所有拦截器列表
格式如下:
this.$interceptors = {
'request': {
config (p) {
return p;
},
success (rst) {
}
}
}
实例
我们找到app.wpy
找到生命周期方法onLaunch(),如果没有,就创建这个方法,然后按照官方文档上写的,添加一个拦截器
onLaunch () {
this.login()
this.$interceptors = {
'request': {
config (p) {
if (this.globalData != null) {
let time = new Date()
let random = Math.random()
let userId = this.globalData.userInfo.id
let token = this.globalData.userInfo.token
p.header.userId = userId
p.header.time = time
p.header.random = random
p.header.token = token
let array = { 'userId': userId, 'random': random, 'time': time, 'token': token }
p.header.sign = md5utils.getSign(array)
}
return p
}
}
}
}
像这样一个拦截器就写好了