Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Angularjs 操作存储的用户对象_Angularjs_Node.js_Sails.js_Passport.js - Fatal编程技术网

Angularjs 操作存储的用户对象

Angularjs 操作存储的用户对象,angularjs,node.js,sails.js,passport.js,Angularjs,Node.js,Sails.js,Passport.js,我使用Passportjs在angular+sailjs堆栈上对用户进行身份验证。当用户进行身份验证时,我将用户详细信息(角色、名称、电子邮件)的对象存储在其他控制器可以访问的角度控制器中。我的想法可能不正确,我对整个js堆栈还不熟悉,但是由于这个对象是由一个角度控制器存储的,所以它对客户端是可见的/可编辑的。如果是这样的话,他们就有能力改变自己的角色并提出请求,这并不理想。如果我的想法是正确的,我的问题是如何阻止他们这样做。如何检查正在操作的对象?Javascript都是客户端,这意味着不信任

我使用Passportjs在angular+sailjs堆栈上对用户进行身份验证。当用户进行身份验证时,我将用户详细信息(角色、名称、电子邮件)的对象存储在其他控制器可以访问的角度控制器中。我的想法可能不正确,我对整个js堆栈还不熟悉,但是由于这个对象是由一个角度控制器存储的,所以它对客户端是可见的/可编辑的。如果是这样的话,他们就有能力改变自己的角色并提出请求,这并不理想。如果我的想法是正确的,我的问题是如何阻止他们这样做。如何检查正在操作的对象?

Javascript都是客户端,这意味着不信任任何东西。您当然可以在控制器中存储信息,但它应该经常更新

在我正在开发的一个应用程序中,我正在使用一个用于验证用户在每次路由更改时的凭据。每次路由更改时,都会调用后端以更新用户信息/凭据。这还允许侦听来自后端的响应,该响应表示会话已超时(然后我使用该响应将会话重定向到登录页面)


通常,如果是JavaScript,则假定后端需要对其进行验证。无法信任客户端。

虽然您可能希望在客户端检查角色等以提供适当的UI提示,但您应该在服务器上验证适当的凭据和访问权限,而不是依赖客户端诚实/准确地显示角色。i、 不要依赖你的客户端来阻止访问,在服务器上检查一下。听起来我的担心是正确的。查看passportjs以验证它所说的使用req.user的用户,这是来自浏览器的请求,因此我不确定这是正确的方法。如何使用passportjs从服务器验证用户?