如何使用node.js保护单页面应用程序中的静态文件

时间:2013-06-25 09:34:32

标签: node.js authentication nginx single-page-application restriction

Iam计划开发一个包含公共区域和私人区域的网站。该站点的两个区域都将是使用AngularJS实现的单独的单页应用程序。我使用Node.js为前端创建REST Web服务。

私人区域只能通过身份验证(用户名/密码)访问。此外,还需要进行身份验证以调用REST API调用。

公共区域的文件将存储在子文件夹/ p​​ublic中,以及子文件夹/ p​​rivate中私有文件夹的文件。我使用nginx为公共区域提供静态文件。我还想用nginx提供私有区域的静态文件。

如何阻止用户直接访问文件,例如 www.example.com/private/js/app.js

只有经过身份验证的用户才能打开/ private文件夹中的文件。

1 个答案:

答案 0 :(得分:0)

不幸的是,如果使用nginx为静态私有文件提供服务,则只能使用非常基本的身份验证方法,例如:

  • 基本身份验证:来自包含用户和密码列表的htpasswd文件。
  • LDAP auth:形成LDAP目录(这是第三方模块)

但是,如果您的系统将用户存储在数据库中,则nginx不知道如何对用户进行身份验证。此外,如果您的系统中的身份验证必须与授权相结合,即user1只能访问/private/user1/kittenpicture.jpg和user2 /private/user2/nakedpics.jpg,那么nginx也无法帮助您除了从nodejs提供私有文件​​之外别无选择(从那时起,您可以将各种身份验证/授权中间件与中间件结合起来用于提供静态文件。