Я понимаю, что JWT являются токенами без государственной регистрации, которые хранят подписанную информацию о претензии клиента и передаются на сервер через HTTP-заголовок авторизации.Зачем нам JWT, когда у нас есть сеансы клиентов?
Мой вопрос: зачем нам JWT, когда у нас уже есть сеансы клиентов (https://github.com/mozilla/node-client-sessions)? Клиентские сеансы концептуально одинаковы. Это файлы cookie, которые содержат подписанную информацию, которая при проверке означает, что cookie не был отпущен. Кроме того, клиентские сеансы хранятся в файле cookie и передаются через HTTP-заголовок Cookie. Это одно и то же, только используя разные слова. Я ошибаюсь?
Итак, почему JWT даже вокруг? Я мог понять, что, возможно, дело в том, чтобы стандартизировать работу токенов проверки подлинности, но мы отлично ладили без стандартного идентификатора сеанса (каждая реализация делала все по-своему). Кроме того, почему JWT не использует файлы cookie в качестве средства передачи. С помощью файлов cookie вам не нужно явно отправлять правильный заголовок для каждого запроса (упрощая Ajax-запросы).
Я что-то упустил?
Примечание: Согласно реестрам Stormpath (https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/) - токены JWT уязвимы для атак CSRF если они хранятся в файлах cookie. –
Конечно, если вы храните JWT в файле cookie и используете его для аутентификации вашего API, вы вернетесь с неявной аутентификацией. Точки JWT обычно не хранятся в файлах cookie, а отправляются в качестве маркеров-носителей в HTTP-заголовке 'Authorization'. См. Также эту статью: http://leastprivilege.com/2015/04/01/implicit-vs-explicit-authentication-in-browser-based-applications/ – MvdD