如何限制快速api访问?

时间:2016-10-21 08:26:49

标签: javascript api express

我正在寻找关于如何限制访问api的一般想法。我已实施身份验证,并且某些资源已锁定到经过身份验证的用户但是,如何进行授权并授予特定应用权限,以便该应用中的每个用户都可以拥有不同的权限?

app.get('/users', (req, res) => {
 var permissions = {'users_read'};
 if(permissions.indexof('token_flags')!=-1){
 ...} else{return false}
});

app.post('/users', permissions('users_read'), ()=>{
 ...
});

user1:users_read

user2:users_readusers_execute

user3:settings_read

admin1:access_all //用户1& 2和管理员将获得api共鸣,user3不是

1 个答案:

答案 0 :(得分:0)

您可以将页面作为索引或键存储到对象中,然后将自动化用户类型设置为数组格式的值

var user_type = 1; // 1: user, 2: staff, 3: admin

var permissions = {
    'users_read': [1, 2, 3],
    'users_execute': [2, 3],
    'settings_read': [3]
};


app.get('/users', (req, res) => {
    var page = 'users_read';
    if(permissions[page].indexOf(user_type) != -1){
        // autorized
    } else{
        return false
    }
});