【发布时间】:2014-06-10 02:40:30
【问题描述】:
我正在使用 Passportjs 在 angular +saijs 堆栈上对用户进行身份验证。当用户授权时,我将用户详细信息(角色、姓名、电子邮件)的对象存储在其他控制器可以访问的角度控制器中。我的想法可能不正确,我是整个 js 堆栈的新手,但由于这个对象是由一个角度控制器存储的,所以它对客户端是可见/可编辑的。如果是这样,那么他们就有能力改变自己的角色并提出请求,这并不理想。如果我的想法是正确的,我的问题是如何禁止他们这样做。如何检查该对象是否被操纵?
【问题讨论】:
-
虽然您可能希望在客户端检查角色等以提供适当的 UI 提示,但您应该在服务器上验证适当的凭据和访问权限,而不是依赖客户端诚实/准确现在的角色。即不要依赖你的客户端来阻止访问某些东西,在服务器上检查它。
-
听起来我的担忧是正确的。查看 passportjs 以验证它说使用 req.user 的用户,这是来自浏览器的请求,所以我不确定这是执行此操作的正确方法。考虑过使用 passportjs 来验证来自服务器的用户的正确操作吗?
标签: angularjs node.js sails.js passport.js