Это то, для чего вы используете куки или сеансы на стороне сервера (которые также используют Cook ie). Вы аутентифицируете пользователя один раз, устанавливаете повара ie, а затем при последующих запросах от этого браузера, повара ie будут отправляться вместе с каждым запросом, и затем вы можете проверить этого повара ie, чтобы проверить, аутентифицированы ли они или не и решить, что они или не имеют права делать на основании этого. Вот как работает почти каждый сайт в Интернете, использующий имя входа.
Я бы порекомендовал использовать модуль express-session
, который создает для вас сеанс на стороне сервера (и управляет поваром ie автоматически для вас), а затем, когда пользователь проходит аутентификацию, вы можете установить флаг аутентификации в сеансе, который могут проверять все ваши маршруты, требующие аутентификации.
Вам не нужно использовать express -session. Вы можете управлять поваром ie самостоятельно, но тогда вам необходимо убедиться, что повар ie правильно зашифрован (для этого JWT является популярной библиотекой), поэтому его может легко подделать мошеннический клиент. И любое состояние, которое вы хотите сохранить для пользователя, либо должно храниться в самом файле cook ie (куки должны быть не очень большими, поскольку они отправляются взад-вперед при каждом запросе http и хранятся в браузере), либо вам нужно было бы поместить зашифрованный идентификатор в cook ie, который вы можете использовать в качестве ключа для своего собственного объекта сеанса на стороне сервера.
Изменения добавлены после уточнения OP они уже используют express -сессион.
Обычно при входе в систему при переадресации вы отправляете строку запроса или скрытый элемент формы, который является исходным URL-адресом, на который пользователь хотел go. Затем форма входа в систему отправит эту строку запроса или скрытый элемент формы вместе с данными формы входа на сервер. После успешного входа в систему сервер перенаправляет вас на исходный целевой URL-адрес, на который пользователь хотел go. Таким образом, пользователи переходят на /admin/add
, перенаправляются на /login
, но эта форма входа содержит скрытый элемент формы /admin/add
. Пользователь отправляет форму пароля.
Сервер проверяет pwd, затем получает исходный /admin/add
url из формы входа и перенаправляет пользователя на этот URL. Ваша проверка подлинности для этого видит, что пользователь только что вошел в систему, поэтому ему разрешено продолжить.