我正在为我的公司在 Angular 中创建一个新的企业应用程序。我对 Angular 感到非常兴奋,但在客户端处理角色并不适合我。
基本上,我会在用户登录时保存令牌,并且在用户查看页面之前,会将授权请求发送到服务器以获取基于令牌的角色和用户详细信息。
在授权向服务器获取页面数据的请求后,无论用户的角色如何,服务器都会返回整个数据,之后我使用 ng-switch 并根据角色呈现模板。
现在这里的问题是我试图在客户端显示和隐藏数据,所以在我收到用户信息后,我必须将角色保存在客户端的任何范围变量或本地存储中。但我的观点是,如果我将它保留在客户端,我可以非常轻松地更改角色并访问我想要的任何数据。
所以我应该假设Angular不适合我的应用程序,我试图根据服务器的角色在客户端显示数据,因为我觉得如果用户可以看到你的逻辑和数据,他显然可以使用它。
这是我的观点
<div ng-switch="User.data.Role">
<div ng-switch-when="Admin">
<h1>hello you are seeing your dashboard Admin</h1>
</div>
<div ng-switch-when="Manager">
<h1>hello you are seeing your dashboard Manager</h1>
</div>
</div>
这是我在控制器中填充用户变量的方法
app.controller('dashoBoardController', ['$scope','UserService', function ($scope, UserService) {
$scope.authentication = UserService.authentication;
$scope.User = UserService.fillAuthData();
console.log($scope.User);
$scope.Greeting = "Welcome! to your Dashboard";
}]);
这是服务方法
var _fillAuthData = function () {
var authData = SessionService.get('user');
if (authData) {
_authentication.isAuth = true;
_authentication.data = authData;
}
console.log(_authentication);
return _authentication;
}
会话服务基于令牌从服务器获取用户数据。正如您所看到的,由于视图是如此具有描述性,因此更改 authData 中的角色并不是什么大问题。
如果有解决方法,请帮助我。我真的很想在 Angular 中完成这个项目。