vue admin 若依框架 解决无权限时进入死循环的问题 auths

news/2024/9/30 8:34:24 标签: vue.js, 前端, javascript

核心原因:

if (auths && auths.length > 0) { // like12 find bug,数组为空[]时依然会进入死循环

原来为:if (auths)

javascript">  // 获取用户信息
  getInfo({ commit, state }) {
    return new Promise((resolve, reject) => {
      getInfo(state.token).then(response => {
        // const { name, avatar, roles, auths } = response.data
        const { name, avatar, auths } = response.data

        if (!name) {
          reject('用户未登录,请登录.')
        }
        commit('SET_NAME', name)// 姓名
        commit('SET_AVATAR', avatar)// 头像
        commit('SET_USER', response.data)// 用户信息
        // commit('SET_ROLES', roles)// 用户角色(实际值为空 没有用到)
        if (auths && auths.length > 0) { // like12 find bug,数组为空[]时依然会进入死循环
          commit('SET_ROLES', auths)// 用户角色(按钮权限控制 v-permission实际使用的是roles 而非permissions)
          commit('SET_PERMISSIONS', auths)// 用户权限
        } else {
          // 如果没有任何权限 则赋一个默认权限 避免请求死循环
          commit('SET_ROLES', 'admin')
          commit('SET_PERMISSIONS', 'admin')
        }
        resolve(response)
      }).catch(error => {
        reject(error)
      })
    })
  },


http://www.niftyadmin.cn/n/5684727.html

相关文章

召回11 地理位置召回、作者召回、缓存召回

有用但重要性不高 地理位置召回 GeoHash召回:对身边周围的事情感兴趣 GeoHash把经纬度编码成二进制哈希码方便检索。召回只根据经纬度这个地理位置,返回一批优质笔记,完全不考虑用户兴趣,也是因此返回优质笔记,大概…

AI学习指南深度学习篇-批标准化在深度学习中的应用

AI学习指南深度学习篇-批标准化在深度学习中的应用 引言 批标准化(Batch Normalization, BN)是一种在深度学习中常用的技术,旨在加速训练过程并提高模型的稳定性。它通过标准化每一个小批量的激活值,减小内部协变量偏移&#xf…

Android build子系统(01)Ninja构建系统解读

说明:本文将解读Ninja构建系统,这是当前Android Framework中广泛使用的构建工具。我们将从Ninja的起源和背景信息开始,逐步解读Ninja的优势和核心原理,并探讨其一般使用场景。然后介绍其在Android Framework中的应用及相关工具&am…

Linux中查找在某一文件夹下有没有给定名字的文件

在Linux系统中,如果你想要从一个目录及其子目录中找到名为ActivityManagerService的文件,你可以使用find命令。这个命令可以递归地搜索指定目录下的所有文件和目录。 以下是一个基本的命令示例,它会在当前目录及其所有子目录中搜索名为Activ…

matlab-对比两张图片的HSV分量的差值并形成直方图

%对比两张图片的HSV分量的差值并形成直方图,改个路径就能用,图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); HSV1 rgb2ntsc(I1); HSV2 rgb2ntsc(I2); %HSV,HSV 代…

electron教程(三)窗口设置

在main.js文件中,创建窗口时会设置窗口的大小,其实还有很多其他属性,可以根据实际需求选择设置,但部分属性存在局限性,官网也有明确告知:自定义窗口 | Electron (electronjs.org) 项目文件目录如下&#x…

MyBatis<foreach>标签的用法与实践

foreach标签简介 实践 demo1 简单的一个批量更新&#xff0c;这里传入了一个List类型的集合作为参数&#xff0c;拼接到 in 的后面 &#xff0c;来实现一个简单的批量更新 <update id"updateVislxble" parameterType"java.util.List">update model…

华为云LTS日志上报至观测云最佳实践

华为云LTS简介 华为云云日志服务&#xff08;Log Tank Service&#xff0c;简称 LTS&#xff09;&#xff0c;用于收集来自主机和云服务的日志数据&#xff0c;通过海量日志数据的分析与处理&#xff0c;可以将云服务和应用程序的可用性和性能最大化&#xff0c;为您提供实时、…