守卫和ngIf之间的区别?

时间:2018-04-19 05:35:29

标签: angular guard

我的网络应用程序有两种类型的用户,普通用户和管理员。基于这些用户,我想控制页面上的元素。例如,如果管理员登录,我们正在显示更新,删除他的选项,但限制普通用户的这些选项。出于安全目的,最好的,警卫或ngIf

提前致谢。

2 个答案:

答案 0 :(得分:1)

Guard用于与ngIf不同的目的。

假设您有三个页面,即Page1Page2Page3。现在考虑Page1只能由管理员访问Page2和{{管理员和普通用户都可以访问1}}。因此我们将为Page3添加一个警卫,它将检查用户是否为管理员,然后只有它将加载页面,否则它将重定向到其他页面。

  

例如,如果管理员登录,我们正在显示更新,删除选项   他,但限制普通用户的这些选项

为此您需要ngIf,以便根据用户角色,您可以显示/隐藏可用选项,因为admin /普通用户正在访问同一页面。

  

出于安全目的,最好是Guards或ngIf

因此根据用例两者都有不同的用途。为了安全起见,最好使用Page1或任何其他方式添加后端检查。因此,对于任何读/写/删除调用,它将验证用户是否可以访问它。

答案 1 :(得分:0)

警卫习惯于允许导航到某些路线。因此,如果您的应用程序有一个管理部分,那么将有一个警卫只允许某些用户根据他们的角色访问该屏幕,如果他们没有这些角色,他们可以被重定向到未授权页面等。

*ngIf最好用于隐藏页面上的特定项目,例如,根据用户是否具有所需角色,将管理按钮隐藏在菜单中。

希望有帮助