我是MEAN.js的新手,目前正在处理具有两个角色的应用程序。用户&管理员和我必须根据使用角色显示菜单。为此,我为管理员创建了Header文件,如下所示;用户角色。
<ul class="nav navbar-nav navbar-center" data-ng-if="admin">
admin menus
</ul>
<ul class="nav navbar-nav navbar-center" data-ng-if="user">
user menus
</ul>
其中admin&amp; user是控制器变量。现在我尝试了不同的东西来设置这个变量的值。
1)我在sessionStorage中设置了userRole的值,如下所示。
$window.sessionStorage.userRole = loggesUser.role (A role from login user)
但在此,任何用户都可以从浏览器sessionStorage更改此值,并且可以看到未授权的菜单。
2)我还尝试将userRole设置为cookie,如下所示。
$cookieStore.put('userRole','user')
但此处用户还可以使用
从浏览器控制台更改cookie值document.cookie="key=value"
所以再次未经授权的用户可以看到菜单。
3)我也尝试将userRole放入$ scope,但用户也可以从浏览器控制台更改此值。
所以我不知道如何根据角色使我的标题安全。任何人都可以给我这个建议。
答案 0 :(得分:0)
如果用户确定了足够的多种方式,用户可以修改您的用户界面并查看他们无法定期访问的屏幕。这就是它的样子。
这可以通过在服务器上强制执行授权(不是身份验证,但您也需要!)来解决。在请求进入服务器端时,在允许执行请求之前检查用户的角色。如果用户的角色没有他们尝试执行的操作的权限,请返回403响应。