Я читал об использовании токенов для аутентификации. Однако я не понимаю, чем токены (JWT) отличаются от файлов cookie. Оба будут хранить информацию о пользователе (в виде утверждений в токенах), иметь определенное постоянство и отправляться с каждым клиентским запросом на сервер.
Несколько вопросов, которые приходят в голову, в дополнение к вышеизложенному -
Токены JWT не подвержены атаке Man in the Middle? Если кто-то украдет токен (на незашифрованном канале), не могут ли они выдать себя за первоначального пользователя? (если мы не добавим IP пользователя и т. д. в претензии)
Я читал несколько тирадов о том, что файлы cookie не подходят для мобильных приложений нового поколения, а токены - это ответ. Почему?
Почему токены считаются более безопасными, чем файлы cookie? Что делает их более неуязвимыми для атак?
Должен ли токен выдаваться только сервером, или можно получить токен от другого поставщика OAuth, настроить (добавить / удалить утверждения) и повторно использовать его?
С точки зрения производительности куки-файлы «плохие», поскольку у них есть ограничение по размеру, поэтому они просто сохраняют идентификатор сеанса (обычно) с данными сеанса на сервере. Это уменьшает размер файлов cookie. Но JWT, весь токен должен быть отправлен, поэтому, если токен содержит данные сеанса в виде утверждений, мы по сути будем отправлять этот постоянно увеличивающийся токен каждый раз. Если я правильно понимаю, разве это не плохая производительность JWT по сравнению с файлами cookie?
Спасибо