Я хочу узнать все подробности аутентификации веб-приложения. Итак, я решил написать библиотеку аутентификации CodeIgniter с нуля. Теперь мне нужно принять решение о том, как определить, является ли один пользователь логином.
В основном, после ввода пользователем пары имя пользователя и пароль. Для этого сеанса устанавливается файл cookie, для следующих перемещений в веб-приложении не требуется имя пользователя и пароль. Серверная сторона проверит, является ли файл cookie сессии действительным, чтобы определить, является ли текущий пользователь логином. Вопрос в том, как определить, является ли cookie действительным файлом cookie, выпущенным со стороны сервера?
Я могу представить, что самый простой способ - сохранить значение cookie в статусе сеанса. Для каждого HTTP-запроса сравните значение из cookie и значение из сеанса сервера. (Поскольку библиотека сеансов CodeIgniter хранит переменные сеансов в файлах cookie, она не применима без некоторых настроек.) Этот метод требует хранения на стороне сервера.
Для огромного веб-приложения, развернутого в нескольких центрах обработки данных. Возможно, что пользователь вводит имя пользователя и пароль при просмотре в одном центре данных, а позже он / она получает доступ к веб-приложению в другом центре данных. Ожидаемое поведение - пользователь просто вводит имя пользователя и пароль один раз. В результате все центры обработки данных должны иметь доступ к состоянию сеанса. Это возможно неприменимо, даже если состояние сеанса хранится во внешнем хранилище, например в базе данных.
Я попробовал Google. Я захожу в Google через азиатский прокси, который должен направлять меня в центры обработки данных в Азии. Затем я переключаюсь на прокси-сервер в Северной Америке, который должен направить меня в центры обработки данных в Северной Америке. Он распознает мой логин без повторного ввода имени пользователя и пароля.
Итак, есть ли способ определить, является ли пользователь логином без статуса сеанса на стороне сервера?