JSON веб-токен против сессии - как подробно работает аутентификация из нескольких устройств? - PullRequest
1 голос
/ 09 февраля 2020

Я много читал о json токенах против сессии и до сих пор не понимаю некоторых вещей.

  1. преимущество использования токенов заключается в аутентификации на нескольких устройствах.

    • Допустим, пользователь регистрируется на веб-сайте, сервер генерирует идентификатор сеанса, отправляет клиенту, клиент сохраняет его в файлах cookie или локальном хранилище (поэтому, когда пользователь хочет снова войти на веб-сайт, клиент отправляет идентификатор сеанса на сервер на при каждом запросе сервер отправляет запросы в базу данных и проверяет, имеет ли его тот же идентификатор, если да, отправляет ответ). Затем тот же пользователь использует мобильное приложение для входа в систему, поскольку идентификатор сеанса хранится только в файлах cookie / localalstorage браузеров компьютеров, а не на мобильном устройстве или другом компьютере, как будет происходить вход с другого компьютера или мобильного устройства? различные идентификаторы сеанса для каждого устройства, в которое входит пользователь, а затем на сервере хранится какой-то массив со ВСЕМИ идентификаторами сеансов пользователей?!

    • Я также читал, что это намного проще с токенами, поскольку они не имеют гражданства. Я просто не понимаю, насколько это актуально, когда речь идет о нескольких устройствах. Я прочитал, что для каждого сервера запросов выполняется проверка с использованием той же подписи, что и при выдаче токена, если он действителен. Клиент должен отправлять этот токен на сервер, хотя с каждым запросом. Разве это не то же самое - другой компьютер никогда не сохранял токен внутри cookie / localalstorage, так как это будет работать?! Нужно ли серверу создавать другой токен? Если это так, я не понимаю разницы и почему сессия менее полезна, чем токены, когда речь идет о нескольких устройствах!

    • Кроме того, я читаю: «Сеансовые куки работают только на одном домен, или на его поддоменах. Если они пытаются go третьей стороне, браузеры, как правило, отключают их .... что не случится с токенами ". Я не понимаю, что это означает и как оно связано с несколькими устройствами, а также почему cookie-файлы имеют значение, так как json токены обычно ТАКЖЕ хранятся в cookie-файлах и идентификаторе сеанса?!

Извините, если это может быть слишком базовым c, я просто так много об этом читал и просто не понимаю основ.

1 Ответ

0 голосов
/ 10 февраля 2020

есть некоторые важные различия между JWT и сессиями.

  1. Сеансы хранятся в оперативной памяти сервера или в базе данных для хранения информации о том, где находится пользователь или что он делает. Например, вы сохраняете текущую страницу, над которой работает пользователь.
  2. НО JWT не имеет состояния. Сервер не сохраняет состояние пользователя или его данные в ОЗУ или базу данных. сервер генерирует ключ для пользователя, включая некоторые важные данные для аутентификации (например, имя пользователя, роль, дата последнего доступа), поэтому пользователь должен отправлять свой ключ с каждым запросом, пока не истечет срок действия его ключа, и он должен запросить другой. Поскольку ключ включает в себя только данные аутентификации пользователя, его можно использовать на любом устройстве (до истечения срока его действия).

, как вы упомянули в мобильных приложениях, пользователь получает несколько сеансов, поэтому JWT в основном используется в мобильных или одноразовых страница приложений. пользователь получает ключ и состояние активности пользователя будет обрабатываться мобильным приложением. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...