我正在寻找关于如何限制访问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_read
,users_execute
user3:settings_read
admin1:access_all
//用户1& 2和管理员将获得api共鸣,user3不是
答案 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
}
});