Meanjs用户角色授权

时间:2015-05-14 20:12:14

标签: express oauth meanjs

在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'
                });
            }
        });
    };
};

0 个答案:

没有答案