Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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
Javascript 具有角度的视图的隐私_Javascript_Angularjs_Authentication_Express_Passport.js - Fatal编程技术网

Javascript 具有角度的视图的隐私

Javascript 具有角度的视图的隐私,javascript,angularjs,authentication,express,passport.js,Javascript,Angularjs,Authentication,Express,Passport.js,我对Angular(使用1.5.x)比较陌生,我想问一个关于维护视图隐私的好方法,这些视图应该只有在通过以前的身份验证后才能加载: 目前,我正在使用passport与Express开发一个应用程序,其工作流程与此处所述非常相似: 由于在应用程序结构方面存在一些不相关的差异,我关心的是,在维护良好实践的同时,是否可能“从角度”隐藏客户端代码,而这些代码在以前的身份验证发生之前不应该以任何形式查看 例如,假设我有一个视图,其中有一个表,列出了来自db的数据,我列出了项目,在布局中,您可能已经看到

我对Angular(使用1.5.x)比较陌生,我想问一个关于维护视图隐私的好方法,这些视图应该只有在通过以前的身份验证后才能加载:

目前,我正在使用passport与Express开发一个应用程序,其工作流程与此处所述非常相似:

由于在应用程序结构方面存在一些不相关的差异,我关心的是,在维护良好实践的同时,是否可能“从角度”隐藏客户端代码,而这些代码在以前的身份验证发生之前不应该以任何形式查看

例如,假设我有一个视图,其中有一个表,列出了来自db的数据,我列出了项目,在布局中,您可能已经看到了一些东西,比如列出db表中字段名称的表头,或者可能是在用户登录之前应该限制的一些其他数据

请记住,如果可能的话,应该有比在客户端控制器/服务或应用程序配置中设置变量更可靠的方法来切换隐藏的内容或不隐藏的内容,因为这些东西可以相对容易地被客户端的某个人通过更改其应用程序状态传递。我不希望从服务器加载任何内容,包括属于页面限制区域的视图/部分


保护视图中只有在成功身份验证后才应在客户端接收的部分的一个很好的例子是什么?

一般来说,对于单页应用程序,您的视图中可能不应该有任何敏感内容,因此,如果访问了这些内容,就无所谓了,因为只有一般的页面结构。这就是说,应该可以使用express route为您的文件提供
res.sendFile()
,并提供一个包含您希望保持私有视图的目录。谢谢@BrandonAnzaldi,好的,我可以使用express做类似的事情,从角度看,这将如何匹配?使用应用程序路由。嗯,您需要调整加载视图的位置。假设您已经通过
express.static()
拥有一个静态内容目录,您可以创建一个接受参数的路由(例如
app.get('/ng views/:filename',function(req,res){…});
(小心。我记不清express是如何处理路由的,所以您可能需要清理参数以保护自己免受目录遍历攻击(带双点等)),然后
res.sendFile(u dirname+'/protected/views/'+req.params.filename)
。就像我说的,小心点。可能有更安全的方法。一般来说,对于单页应用程序,您的视图中可能不应该有任何敏感内容,因此,如果访问了这些内容,就没关系了,因为除了一般的页面结构之外,什么都没有。也就是说,应该可以使用快速路由来提供服务使用
res.sendFile()更新文件
和一个目录,其中包含您希望保持私有的视图。谢谢@BrandonAnzaldi,好的,我可以用express做类似的事情,从角度看,这与应用程序路由如何匹配?好的,您需要调整加载视图的位置。因此,假设您已经通过
express.static()拥有一个静态内容目录
,您可以创建一个接受参数的路由(例如,
app.get('/ng views/:filename',function(req,res){…});
(请小心。我不记得express是如何处理路由的,所以您可能希望清理该参数以保护自己免受目录遍历攻击。(带双点等)然后
res.sendFile(uu dirname+'/protected/views/'+req.params.filename)
。就像我说的,小心点。可能有更安全的方法。