在MeanJS中进行角色授权的最简单但仍然安全的方法是什么?
例如,如果在文章示例中我想让管理员用户被允许编辑其他人的文章。
这样做的方式只是将authentication.client.service.js改为
// Authentication service for user variables
angular.module('users').factory('Authentication', [
function() {
var _this = this;
_this._data = {
user: window.user,
isAdmin: function(){
var isAdmin = false;
for (var userRoleIndex in this.user.roles) {
if ('admin' === this.user.roles[userRoleIndex]) {
isAdmin = true;
}
}
return isAdmin;
}
};
return _this._data;
}
]);
这似乎不太安全。验证是否应该在服务器上以快递方式完成?如果是这样我该怎么办?看起来在users.authorization.server.controller.js中已经存在一些东西,但我不确定我应该如何从客户端调用它。
/**
* User authorizations routing middleware
*/
exports.hasAuthorization = function(roles) {
var _this = this;
return function(req, res, next) {
_this.requiresLogin(req, res, function() {
if (_.intersection(req.user.roles, roles).length) {
return next();
} else {
return res.status(403).send({
message: 'User is not authorized'
});
}
});
};
};