小程序登录拦截器,用户再没有登陆的时候是不可以进入其他页面的,类似于vue中的导航守卫,
这里用到的是uniapp自带的拦截器api
以下代码可直接拿来用
// 设置白名单,也就是没有登录也可以访问到的名单
const whiteList = [
'/pages/start/start',
'/pages/index/index',
'/pages/task/task',
'/pages/mine/mine',
]
function hasPermission (url) {
let islogin = uni.getStorageSync('is_login');//在这可以使用token,isLogin是登录成功后在本地存储登录标识
islogin = Boolean(Number(islogin));//返回布尔值
// 在白名单中或有登录判断条件可以直接跳转
if(whiteList.indexOf(url) !== -1 || islogin) {
console.log('通过')
return true
}
console.log('失败')
return false
}
uni.addInterceptor('navigateTo', {
// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
invoke (e) {
if(!hasPermission(e.url)){
uni.reLaunch({
url: '/pages/login/login'
})
return false
}
return true
},
success (e) {
}
})