Аутентификация на основе сеанса
При аутентификации на основе сеанса сервер создает сеанс для пользователя после входа пользователя. Идентификатор сеанса затем сохраняется в файле cookie вбраузер пользователя.Пока пользователь остается в системе, cookie будет отправляться вместе с каждым последующим запросом.Затем сервер может сравнить идентификатор сеанса, сохраненный в файле cookie, с информацией сеанса, хранящейся в памяти, для проверки личности пользователя и отправить ответ с соответствующим состоянием!
Аутентификация на основе токена
Многие веб-приложения используют JSON Web Token (JWT) вместо сеансов для аутентификации.В приложении на основе токенов сервер создает JWT с секретом и отправляет JWT клиенту.Клиент хранит JWT (обычно в локальном хранилище) и включает JWT в заголовок при каждом запросе.Затем сервер будет проверять JWT при каждом запросе от клиента и отправлять ответ.
Самое большое отличие в этом состоит в том, что состояние пользователя не сохраняется на сервере, так как состояние сохраняетсявместо этого внутри токена на стороне клиента.Большинство современных веб-приложений используют JWT для аутентификации по причинам, включая масштабируемость и аутентификацию мобильных устройств.
Масштабируемость
Аутентификация на основе сеанса: Посколькусеансы хранятся в памяти сервера, масштабирование становится проблемой, когда огромное количество пользователей одновременно используют систему.
Аутентификация на основе токена: Нет проблем с масштабированием, потому что токенхранится на стороне клиента.
Несколько устройств
Сеансовая аутентификация: Файлы cookie обычно работают в одном домене или поддоменах и обычноотключено браузером, если они работают кросс-домен (сторонние куки).Это создает проблемы, когда API обслуживаются из другого домена для мобильных и веб-устройств.
Аутентификация на основе токенов: нет проблем с cookie, поскольку JWT включен в заголовок запроса.
Аутентификация на основе токенов: с использованием JWT является более рекомендуемым методом в современных веб-приложениях.Одним из недостатков JWT является то, что размер JWT намного больше по сравнению с идентификатором сеанса, хранящимся в cookie, потому что JWT содержит больше информации о пользователе.Необходимо позаботиться о том, чтобы в JWT была включена только необходимая информация, а конфиденциальная информация должна быть исключена для предотвращения атак безопасности XSS.