ABl*_*hip 6 javascript node.js express angularjs mean.io
我刚刚安装了MEAN堆栈(MongoDB,Express.js,AngularJS,Node.js)并打开了示例程序(在mean.io上找到),他们有一个基本的应用程序,你可以登录并创建博客"文章"只是为了测试等.
无论如何,我删除了'#!' 从URL中输出整个用户和文章模型,因为它们在数据库中.接缝好像这样做会让它停止通过Angular进行路由,而是使用只有JSON REST apis的Express路由.这是MEAN堆栈包中的一个缺陷,Angular整体上,还是仅仅是一个开发环境设置?我无法想象会发布这样一个巨大的缺陷,但也许我只是遗漏了一些东西......
可复制的步骤:
它只是一个应用程序配置.如果您更改routes.js:
app.get('/articles', articles.all);
Run Code Online (Sandbox Code Playgroud)
至
app.get('/articles', auth.requiresLogin, articles.all);
Run Code Online (Sandbox Code Playgroud)
然后,如果您尝试直接点击url/articles,则会收到以下消息:
"用户未经授权"
而不是列出所有文章的JSON.
如你所说,删除#!导致路由由服务器处理.然后,节点API将用户对象转储到响应中.
问题完全独立于Angular - 应用程序仅由/路径上的Node提供服务.然后Angular使用哈希值来显示正确的页面.
这可能仅仅是MEAN提供的示例的问题.当他们谈论引用代码结构和设置的最佳实践而不是快速演示时,应用程序本身是不安全的.
您可以向他们询问相关信息,因为可能会有人建立在示例之上并且不解决安全问题.
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |