目前我尝试建立一个有公共和私人区域的网站。我使用 Node.js 服务器端。Node.js 主要通过 REST Web Services 为前端提供数据并处理登录。所有数据都将存储在 MongoDB 中。前端是用 AngularJS 构建的。目前我将 nginx 用于静态文件,只有 REST 调用 (/api/...) 和登录 (/login) 将传递给 node.js。
这是我当前的文件结构:
www
|-- public
| |-- css
| |-- img
| |-- js
| | +-- templates
| | +-- login.html
| |
| +-- index.html
|
|-- private
| |-- css
| |-- img
| |-- js
| | +-- templates
| | +-- someprivatestuff.html
| |
| +-- index.html
在 Node.js 中,我使用护照进行身份验证。
app.post('/login', passport.authenticate('local'), function(req, res) {
res.redirect('http://localhost/private');
});
如果用户认证成功,他将被重定向到 /private。问题是上面的文件结构将由 nginx 提供服务。因为它们是静态文件。如何通过键入 url /private (或该目录中的其他文件)来防止人们直接访问私人区域。我是否也应该对静态文件使用 node.js 来处理对文件的访问?但是我在阅读Node.js之前使用nginx是一种常用的方法。