0

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

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

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

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

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

我见过有人建议使用nuxt-auth 的范围键,但这对于像这样的团队特定角色来说看起来不太好,所以现在我有点迷路了。

有任何想法吗?

4

1 回答 1

0

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

最后,您要实现的是查看是否:

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