Использование React, React Router и Express, (стек Мерна) с express-session
Я пытаюсь сделать так, чтобы пользователь входил в систему.
Вот различные функции, которые, мне кажется, мне понадобятся.
Вход в систему пользователя
- Чтобы войти в систему, React должен будет отправить запрос на маршрут аутентификации в экспрессе,В случае успеха на маршруте аутентификации должен быть установлен
express-session
примерно так: req.session.user = user
(пользователь имеет следующую информацию: {name, email}
)
Проверкаесли пользователь вошел в систему
- В файле
app.js
в useLayoutEffect()
отправьте запрос на получение на экспресс-маршрут с именем /me
, проверяя, вошел ли пользователь в систему.пользователь, а затем отправить ответ, используя: req.session.user
.
Заставить пользователя оставаться в системе
- Файл
app.js
установит пользовательское состояние в useLayoutEffect()
, начиная с шага 2.
Вопросы:
- Являются ли вышеуказанные шаги правильными, ия что-то упускаю?
- Что мешает хакеру вручную изменить состояние в
app.js
и установить состояние пользователя, тем самым получив доступ к аутентифицированному маршруту? - Как я могу защититьМаршрут, который написан с использованием реакции маршрутизатора?Используя экспресс-маршрутизатор, я просто добавил бы промежуточное программное обеспечение для аутентификации, но в процессе реакции страница не отправляется на серверную сторону.
- На первом шаге вместо этого:
req.session.user = user
, я должен делать: req.session.jwt = jwt