当前位置:首页 > uni-app

uniapp 页面权限

2026-02-06 00:21:43uni-app

uniapp 页面权限实现方法

在uniapp中实现页面权限控制通常涉及路由拦截、全局验证和动态权限管理。以下是几种常见方案:

路由拦截与导航守卫

通过uni.addInterceptor拦截页面跳转,在跳转前验证权限:

// main.js 或 App.vue
uni.addInterceptor('navigateTo', {
  invoke(args) {
    const needLogin = ['/pages/user/center', '/pages/order/list']
    if (needLogin.includes(args.url) && !hasLogin()) {
      uni.showToast({ title: '请先登录', icon: 'none' })
      return { url: '/pages/login/index' } // 重定向到登录页
    }
    return args
  }
})

自定义权限指令

创建全局指令控制元素显示:

// main.js
Vue.directive('auth', {
  inserted(el, binding) {
    if (!checkPermission(binding.value)) {
      el.parentNode.removeChild(el)
    }
  }
})

// 使用方式
<button v-auth="'admin'">管理员按钮</button>

后端动态权限方案

  1. 用户登录后获取权限列表
  2. 前端存储权限标识(Vuex或本地存储)
  3. 页面加载时校验权限:
    // 页面 onLoad 钩子
    onLoad() {
    if (!this.$store.getters.hasPermission('pageA')) {
     uni.redirectTo({ url: '/pages/error/403' })
    }
    }

权限数据存储结构示例

建议采用扁平化权限标识:

// 用户权限数据示例
{
  permissions: [
    'page:home',
    'page:user',
    'button:delete'
  ]
}

特殊场景处理

TabBar页面权限需特殊处理,因uni.switchTab无法拦截:

uniapp 页面权限

// 在App.vue的onLaunch中检测
uni.onTabBarMidButtonTap(() => {
  if (!hasPermission('tabCenter')) {
    uni.navigateTo({ url: '/pages/auth/tips' })
  }
})

注意事项

  • 敏感权限需后端二次验证
  • H5端注意路由守卫与History模式兼容
  • 小程序端需处理页面栈限制
  • 权限变更时及时更新本地存储

以上方案可根据实际项目需求组合使用,建议配合JWT或OAuth2.0实现完整鉴权流程。

标签: 权限页面
分享给朋友:

相关文章

vue怎么实现页面返回

vue怎么实现页面返回

实现页面返回的方法 在Vue中实现页面返回功能可以通过以下几种方式: 使用Vue Router的go方法 this.$router.go(-1) 该方法接受一个整数参数,表示在历史记录中前进或后退…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…

vue实现列表权限

vue实现列表权限

实现列表权限控制的方法 在Vue中实现列表权限控制通常涉及前端逻辑与后端数据的配合。以下是几种常见方法: 基于角色或权限码的渲染控制 通过v-if或v-show指令根据用户权限动态渲染列表项: &…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

vue element 实现权限

vue element 实现权限

权限控制实现方式 在Vue项目中使用Element UI实现权限控制通常涉及前端路由权限和界面元素权限两部分。以下是常见的实现方法: 路由权限控制 基于用户角色动态生成可访问路由列表,通过路由守卫进…