首页 文章

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

提问于
浏览
5

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

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

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

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

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

1 回答

  • 0

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

    • 基本身份验证:来自包含用户和密码列表的htpasswd文件 .

    • LDAP auth:形成LDAP目录(这是第三方模块)

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

相关问题