uniapp微信小程序进行登录拦截-基于request.js
const BASE_URL = 'http://localhost:8080'
export const myRequest = (options)=>{
const whiteList = [
'/wx/getSessionId',
'/wx/authLogin'
]
if(whiteList.indexOf(options.url) === -1 && uni.getStorageSync("token") == '') {
uni.switchTab({
url:"../../pages/member/member",
})
uni.showToast({
title: '请先登录'
});
return new Promise((resolve, reject)=>{
resolve("未登录");
})
}
return new Promise((resolve, reject)=>{
uni.request({
url:BASE_URL + options.url,
method: options.method || 'GET',
data: options.data || {},
header: {
Authorization: uni.getStorageSync("token")
},
success: (res)=>{
if(res.data.code !== 200) {
return uni.showToast({
title: '调用接口失败'
})
}
resolve(res)
},
fail: (err)=>{
uni.showToast({
title: '后台出错了'
})
reject(err)
}
})
})
}
备注
uni.switchTab({
`url:"../../pages/member/member",` //这里是登录校验不成功则跳转的登录页面
})
//=====================
//白名单,写的是后端的接口地址
const whiteList = [
'/wx/getSessionId',
'/wx/authLogin'
]
//=====================
success: (res)=>{
if(res.data.code !== 200) { //这个是后端返回的json数据,!!不要照搬照抄这个!!
return uni.showToast({
title: '调用接口失败'
})
}
resolve(res)
},
总结
总体流程就是判断是否是白名单里面的、如果不是白名单里的,就要有token才让请求,不然就返回到登录页面要求登录