nginx + express обслуживают статические файлы только для аутентифицированных пользователей - PullRequest
0 голосов
/ 09 декабря 2018

Я работаю над статическим веб-сайтом, созданным с помощью gatsby.

Я хочу, чтобы он был доступен только для посетителей, которые знают пароль, и я не могу сделать это с .htaccess, так как мне нужна моя собственная пользовательская страница входа в систему, а не просто всплывающее окно какого-то браузера.

Я подумал, что я бы просто создал очень простой экспресс-API со следующими конечными точками:

"/" - serves the static files (gatsby build files, the actual website), 
if you dont have a certain cookie, you get redirected to "/login"

GET "/login" - my custom login page (simple input for the password)

POST "/login" - in here you send the password, if its correct, 
you get the cookie and you get redirected to "/" so to the actual website

Все работает нормально, но я немного обеспокоен тем, что не буду использовать nginx.Скоро я разверну приложение (цифровой океан), и я пытаюсь понять, как производительность обслуживания статических файлов через Express вместо nginx снижает скорость.

Мой вопрос: как я могу реализовать его так, чтобы его nginx обслуживал файлы, но если нет файла cookie, то перенаправляет на «/ login», как сейчас?

Я много читаю, и у меня нет проблем с обслуживанием через часть nginx, но у меня проблемы с пониманием потока "check-if-cookie".

Является ли хорошей практикой проверка файлов cookie (и перенаправление, если они не найдены) в nginx?Или, может, мне следует поступить иначе?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 09 декабря 2018
function checkAuth(req, res, next) {
    if (!checkAuth) {
        res.redirect('/login');
    } else {
        next();
    }
}

app.use('/admin/information', checkAuth, information);

Выполните ту же концепцию, что и выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...