|
|
- let needLogin = [
- // "/pages/user/user",
- ]
- let list = [];
- // let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
- list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
- console.log(item, 'router list item')
- uni.addInterceptor(item, {
- invoke(e) { // 调用前拦截
- //获取用户的token
- console.log(e, 'routerjs invoke')
- const token = localStorage.getItem('token')
- //获取当前页面路径(即url去掉"?"和"?"后的参数)
- console.log(token, 'router index token')
- const url = e.url.split('?')[0]
- console.log(url, 'router index url')
-
- console.log(needLogin.includes(url))
- //判断要打开的页面是否需要验证登录
- if (needLogin.includes(url) && !token) {
- uni.showToast({
- title: '该页面需要登录才能访问,请先登录',
- icon: 'none'
- })
- uni.navigateTo({
- url: "/pages/login/login"
- })
- return false
- }
-
- return true
- },
- fail(err) { // 失败回调拦截
- console.log(err);
- },
- })
- })
|