Управление сеансами ExpressJS - PullRequest
0 голосов
/ 07 ноября 2018

Так что я долго не мог понять, как управлять сессиями в Express. Да, я везде смотрел на YouTube, Stack Over Flow и т. Д., И это просто не имеет никакого смысла для меня вообще.

Итак, я знаю основы, устанавливаю модуль express-sessions, затем запрашиваю его, а затем регистрирую промежуточное ПО в нашем приложении. Теперь у нас есть доступ к объекту сеанса через request объект, выполнив request.session. Хорошо, но что теперь?

Я думаю, что самая большая проблема, с которой я сталкиваюсь, - это как поддерживать сеанс пользователя. В моем недавнем заявлении у меня есть страница регистрации и входа. Как только пользователь регистрируется, ему предлагается войти в систему. Когда пользователь входит в приложение, на бэкэнде я сначала проверяю, соответствуют ли предоставленные данные базе данных, если это так, тогда я ссылаюсь на объект request.session и делаю там кое-что. Например:

app.get('/login', (req, res) => {
   // Get user login details.
   var userSession = {
       user: req.body.username,
       sessID: req.sessionID
   }
   // Store the user session somewhere, either in a Session Store.
   // or a database. For now I will store it in an array.
   sessionArray.push(userSession);
});

Хорошо, теперь у нашего массива будет пользовательский сеанс. Но что теперь? Каждый раз, когда пользователь пытается получить доступ к маршруту, мне нужно проверить сеанс пользователя, верно? Это не должно быть слишком сложно. Но что, если у нас будет различное происхождение приложения? Например, мое приложение VueJS находится на порте 8080, а мой сервер Express - на порту 3000. Я буду отправлять вызов AJAX из приложения Vue каждый раз, когда пытаюсь получить доступ к маршруту в приложении Vue, и проверять сервер, если сеанс / username существует внутри любой структуры данных / хранилища, в котором мы сохранили наш сеанс, и, если он существует, мы отправляем результат, указывающий, что пользователь вошел в систему и готов к работе.

Это все, что нужно? Это самая трудная вещь, с которой я когда-либо сталкивался.

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