Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 路由能否向不同的角色类型显示不同的信息?_Node.js_Api_Security_Express_Acl - Fatal编程技术网

Node.js 路由能否向不同的角色类型显示不同的信息?

Node.js 路由能否向不同的角色类型显示不同的信息?,node.js,api,security,express,acl,Node.js,Api,Security,Express,Acl,如果请求来自“内容用户”,则/API/users/(例如)使用单个用户的配置文件对象进行响应是否存在安全隐患?如果“管理员”请求相同的/API/users/route,则会返回系统上所有用户的列表 ExpressJS的大多数ACL扩展似乎设计为: if role == 'admin' { return AdminView; } else { return error; } 但它们似乎没有考虑多个if-else角色场景,例如: /api/用户 if (role == 'user

如果请求来自“内容用户”,则/API/users/(例如)使用单个用户的配置文件对象进行响应是否存在安全隐患?如果“管理员”请求相同的/API/users/route,则会返回系统上所有用户的列表

ExpressJS的大多数ACL扩展似乎设计为:

if role == 'admin' {

  return AdminView;

} else {

   return error;

}
但它们似乎没有考虑多个if-else角色场景,例如:

/api/用户

if (role == 'user') {

   return UserProfileObject;

 } else if (role == 'teacher') {

   return TeacherProfile + ListOfStudents 

} else if (role == 'admin') {

   return AllUsers;

} else {

   return error;

}

只需一句评论:您的建议将非常难以调试:您永远无法确定您的系统是否真的只有一个用户,或者验证是否失败。相反,如果管理员用户真的只想要用户的详细信息,他们总是会得到一个用户列表,而不是…测试不是通过像Mocha这样的东西来完成吗?您可以很容易地准备一个脚本来测试这两个场景。从我的观点来看,我认为问题中提出的API模型是一种优雅的方式,可以用“角色不可知”的方式封装场景?你怎么认为?