4

Iam планирует разработать веб-сайт с общественным районом и частной зоной. Обе области сайта будут отдельными одностраничными приложениями, реализованными с помощью AngularJS. Я использую Node.js для создания веб-службы REST для front-end.Как защитить статические файлы в одностраничном приложении с помощью node.js

Доступ к частной области возможен только при аутентификации (имя пользователя/пароль). Также требуется аутентификация для вызова вызовов REST API.

Файлы общедоступной зоны будут храниться в подпапке/общедоступной и файлы для частной папки в подпапке/в приватной папке. Я обслуживаю статические файлы для публичной зоны с помощью nginx. Я также хочу обслуживать статические файлы частной области с помощью nginx.

Как я могу запретить пользователям доступ к файлам напрямую, как www.example.com/private/js/app.js

только пользователи, которые идентифицируются должны иметь возможность открывать файлы в личной папке/,

ответ

0

К сожалению, если вы используете Nginx для сервера статические личные файлы, вы ограничены очень простые методы аутентификации, например:

  • Basic Auth: от Htpasswd файла, содержащего список пользователей и паролей ,
  • LDAP аутентификация: сформировать каталог LDAP (это третий модуль партии)

Однако, если ваши системы хранят пользователи в базе данных, Nginx не имеет ни малейшего представления о том, как для аутентификации пользователей. Кроме того, если в вашей системе аутентификация должна быть объединена с авторизацией, то есть пользователь1 может получить доступ только к /private/user1/kittenpicture.jpg и user2 /private/user2/nakedpics.jpg, nginx тоже не поможет, и у вас нет другого выбора, кроме как обслуживать ваши личные файлы с nodejs (с тех пор вы можете комбинировать все виды средств аутентификации/авторизации с промежуточными продуктами для обслуживания статических файлов.