当前位置: 首页 > news >正文

uniapp路由权限拦截守卫

uniapp中没有向vue中router的路由管理插件,官方提供uni.addInterceptor这个API去控制,这个方法可在进入到页面之前就拦截相应的跳转,就不存在在需登录页面加载展示之后再跳转到登录页面,操作如下

1、在uitls的文件夹下,新建permission.js文件

// 页面白名单,这里放的是不需要登录的页面
const whiteList=['/pages/home/index','/pages/login/index',
]
const loginPage="/pages/login/index";
export default function initPermission(){const routeFnList=["navigateTo","redirectTo","reLaunch","switchTab"]routeFnList.forEach(item=>{uni.addInterceptor(item,{invoke(e){//这里判断用户有没有登录,如果项目较大,可使用store状态去判断,依个人情况const token=uni.getStorageSync("token");const url=e.url.split("?")[0];let notNeed=whiteList.includes(url)		if(notNeed){return e}else{if(!token){uni.showToast({title:"请登录",icon:"none"})uni.navigateTo({url:loginPage})return false}else{return e}}},success(res){},fail(err){}	})		})}

2、在App.vue的文件中,引入permission.js文件并执行

<!-- App.vue -->
<template></template>
<script>
import initPermission from "@/utils/permission.js"export default {onLaunch:async function() {//这里调用此函数就行initPermission()},methods:{}onHide: function() {}}
</script><style lang="scss">
</style>

3、注意事项

1、如果咱们用的自带的底部tabbar,tababr的跳转该拦截器是无法拦截,需要使用自定的底部tabbar,


http://www.mrgr.cn/news/55810.html

相关文章:

  • 可编辑PPT | 用户中台运营解决方案
  • iOS IPA上传到App Store Connect的三种方案详解
  • 24/10/14 算法笔记 循环神经网络RNN
  • 使用 Docker compose 部署 Nacos(达梦数据库)
  • 如何检查前端项目和 Node 项目中未被使用的依赖包
  • 苹果仍在研发更大尺寸的 iMac | Swift 周报 issue 60
  • C# 字符串处理与正则表达式
  • Python | Leetcode Python题解之第500题键盘行
  • Shiro框架认证机制详解
  • AndroidStudio移动开发:使用Service播放音乐【步骤】
  • 最小差值 II
  • 大模型 Agent 概述
  • 关于懒汉饿汉模式下的线程安全问题
  • C++基础与实用技巧第三课:内存管理与性能优化
  • 字典学习算法
  • Stylish Archer Assets Pack 女弓箭手射箭动画动作
  • Docker 部署 EMQX 一分钟极速部署
  • 什么是运动控制器?运动控制器的特点
  • Echarts 点击事件无法使用 this 或者 this绑定的数据无法获取
  • 使二进制数组全部等于 1 的最少操作次数 II
  • 回归预测||时序预测||基于灰狼优化的时域卷积TCN连接Transformer-BiLSTM的数据回归预测|时序预测Matlab程序
  • 现代C语言:C23标准重大更新
  • Moectf-week1-wp
  • WSL2Linux 子系统(十三)
  • Mybatis 中<where>的用法注意事项(附Demo)
  • 商场楼宇室内导航系统