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

如何使用node.js保护单页应用程序中的静态文件,node.js,authentication,nginx,single-page-application,restriction,Node.js,Authentication,Nginx,Single Page Application,Restriction,Iam计划开发一个包含公共区域和私人区域的网站。网站的两个区域都将是单独的单页应用程序,使用AngularJS实现。我使用Node.js为前端创建REST Web服务 私人区域只能通过身份验证(用户名/密码)访问。调用RESTAPI调用还需要身份验证 公共区域的文件将存储在子文件夹/public中,而专用文件夹的文件将存储在子文件夹/private中。我使用nginx为公共区域提供静态文件。我还想用nginx提供私有区域的静态文件 如何防止用户直接访问文件,如www.example.com/pr

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

私人区域只能通过身份验证(用户名/密码)访问。调用RESTAPI调用还需要身份验证

公共区域的文件将存储在子文件夹/public中,而专用文件夹的文件将存储在子文件夹/private中。我使用nginx为公共区域提供静态文件。我还想用nginx提供私有区域的静态文件

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


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

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

  • 基本身份验证:来自包含用户和密码列表的htpasswd文件
  • LDAP验证:形成LDAP目录(这是第三方模块)
但是,如果您的系统将用户存储在数据库中,nginx不知道如何对用户进行身份验证。此外,如果在您的系统中,身份验证必须与授权相结合,即user1只能访问
/private/user1/kittenpicture.jpg
和user2
/private/user2/nakedpics.jpg
,nginx也不会帮助您,您别无选择,只能从nodejs服务您的私有文件(从那时起,您可以将各种身份验证/授权中间件与用于服务静态文件的中间件结合起来