4

Iam计划开发具有公共区域和私人区域的网站。网站的这两个区域都是独立的单页应用程序,通过AngularJS实现。我使用Node.js为前端创建REST Web服务。如何使用node.js保护单个页面应用中的静态文件

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

公共区域的文件将存储在子文件夹/公共文件夹中,以及子文件夹/私人文件夹中的私人文件夹文件。我用nginx为公共区域提供静态文件。我也想用nginx来提供私有区域的静态文件。

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

只有被认证应该可以在/私人文件夹,打开文件的用户。

回答

0

不幸的是,如果你使用的nginx服务器的静态私人文件,你被限制在非常基本的身份验证方法,例如:

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

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

相关问题