按团队角色限制nuxt页面访问



我正在编写一个Nuxt网站,它将允许用户成为团队的成员。每个成员都有一个角色(成员、经理、所有者等(,当我在这里写后端时,我可以从每个成员(或用户(的数据源返回该角色。

如何根据用户在团队中的角色限制对某些页面的访问?

我猜第一步是尝试编写一个自定义中间件,我可以将其用于我想要限制的页面:-

export default function ({ $auth, redirect }) {
// do the check here
}

但我不确定从那里获得特定页面团队用户角色的最佳方式是什么。

我看到有人建议使用nuxt-auth的作用域键,但对于这样的特定于团队的角色来说,这看起来不太好,所以现在我有点迷失了方向。

有什么想法吗?

不确定nuxt/auth,因为它可能会增加整个事情的复杂性。如果你在其他地方不使用它进行身份验证,最好不要使用它。同时,如果你确实使用了它,你可能会尝试一下。可以让事情变得更快。

最后,你试图实现的是看看是否:

  • 当前经过身份验证的用户(从vuex获取(确实有特定的权限号
  • 比方说:admin >> 40manager >> 30employee >> 20client >> 10guest >> 0
  • 如果用户在某个页面上,他不应该在,则重定向用户
  • 您可以检查登录用户的值,并根据该权限的数量向他显示网页的特定块
  • 从长远来看,如果你想要一些粒度(这个不会真正进入中间件,而是更多地进入模板tho(,那么用{ admin: false, blog: true }之类的东西将对象链接到登录用户可能是一个更灵活的想法

最新更新