Как использовать экспресс-сессии по запросам CORS - PullRequest
0 голосов
/ 16 мая 2018

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

1 Ответ

0 голосов
/ 16 мая 2018

Сеанс входа в систему в браузере обычно работает путем отправки куки (обычно зашифрованного) обратно клиенту, который содержит какой-то ключ / индекс для сеанса на стороне сервера. Затем клиент представляет этот файл cookie при каждом последующем запросе, чтобы идентифицировать себя на сервере, чтобы сервер мог связать правильный логин с каждым новым запросом. Так работает экспресс-сессия.

Чтобы это работало в приложении, вам нужно всего лишь сохранять и отправлять куки-файлы с каждым запросом ajax. Вы не показываете никакого кода в своем приложении, поэтому мы не можем сделать конкретное предложение по кодированию, но часто есть поддержка чего-то, называемого «jar cookie», который представляет собой код, связанный с каждым запросом и ответом, который захватывает cookie, сохраняет их и отправляет с последующими запросами. Если используемые вами коммуникационные библиотеки не имеют такой функции, вы можете либо найти некоторые из них, либо написать ее самостоятельно. Это вопрос получения заголовка set-cookie для ответа, сохранения его для последующего использования, а затем для каждого нового запроса вы устанавливаете заголовок cookie с этим значением.

Если для файла cookie задана дата / время истечения срока действия, код обработки cookie должен соответствовать этому. Вам также нужно будет соблюдать надлежащие процедуры и отправлять файлы cookie только тем адресатам, которым они принадлежат (ограничения домена и пути), иначе вы можете случайно открыть уязвимость системы безопасности. Очевидно, что лучше всего найти уже реализованное решение, которое следует всем надлежащим правилам файлов cookie.

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

...