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

tsc*_*ela 5 authentication nginx restriction node.js single-page-application

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

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

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

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

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

Alb*_*rto 0

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

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

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