一行代码antd pro(v4)的绕过权限登录页面

ant design pro(v4) 我经常在用,用得还挺舒服的,权限管理、路由设置啥的都挺好用。
但是有时候有些页面咱们并不需要登录才允许查看,比如一些公共数据查询。
但是好像一直搜索不到如何绕开这个权限管控,今天研究出来了简单记录一下。

其实这个也是很简答,只是太依赖这个脚手架了,很多基础代码没有去看。
其实这个重定向就在最源头的app文件里面。

// src/app.jsx
 onPageChange: () => {
      const { location } = history; // 如果没有登录,重定向到 login

      if (!initialState?.currentUser && location.pathname !== loginPath) {
        history.push(loginPath);
      }
    },

解决办法很简单,判断一下路径,不需要权限的路径就直接不要重定向就行了。

// src/app.jsx

const needLoginPath = [
  '/manage_admin/user_manage',
  '/manage_admin/login_manage',
];

    onPageChange: () => {
      const { location } = history; // 如果没有登录,重定向到 login

      if (!initialState?.currentUser && location.pathname !== loginPath && needLoginPath.indexOf(location.pathname) > -1) {
        history.push(loginPath);
      }
    },

PS:routes的权限问题

在绕过权限后出现了一个问题,就是有些网页我设置是只有管理员权限才能看到的,设置为:
在这里插入图片描述
这么设置后出现一个问题,当我登录一个非管理员用户的时候,我确实看不到这些路径。
但是我没登录时反而可以看到这几个路径。
问题出在access的判定中。
在这里插入图片描述
可以看到第一行,原本的管理员权限判定使用的是currentUser,当你登录了非管理员时,返回的是false。当你没登录时返回的是undefined。antdpro的权限管理没有处理undefined,所以没登录时会看到这些路径。
如下图,没有明确判断canUser!==undefined的时候,输出了undefined。
在这里插入图片描述
解决方法就是明确判断currentUser !== undefined,让权限正确的输出布尔型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值