Система авторизации на онлайн-платформах с использованием JWT (JSON Web Token) работает по следующему алгоритму: blog.skillfactory.ru
- Клиент выполняет вход, используя учётные данные и отправляя запрос на сервер. blog.skillfactory.ru
- Сервер проверяет эти учётные данные. blog.skillfactory.ru Если они действительны, сервер генерирует JWT и отправляет его обратно клиенту. blog.skillfactory.ru При генерации JWT-токена сервер ставит подпись секретным ключом, который хранится только в веб-приложении. blog.skillfactory.ru ru.hexlet.io
- Клиент сохраняет JWT, обычно в локальном хранилище, и включает его в заголовок каждого последующего HTTP-запроса. blog.skillfactory.ru
- Сервер, получая эти запросы, проверяет JWT. blog.skillfactory.ru Если он действителен, клиент аутентифицирован и авторизован. blog.skillfactory.ru
JWT-токен состоит из трёх частей, которые разделены точкой: xakep.ru ru.hexlet.io
- Header (заголовок) — информация о токене, тип токена и алгоритм шифрования. xakep.ru ru.hexlet.io
- Payload (полезные данные) — данные, которые нужно передать в токене. xakep.ru ru.hexlet.io Например, имя пользователя, его роль, истекает ли токен. xakep.ru ru.hexlet.io Эти данные представлены в виде JSON-объекта. ru.hexlet.io
- Signature (подпись) — подпись токена, которая позволяет проверить, что токен не был изменён. xakep.ru ru.hexlet.io
Безопасность коммуникации между веб-браузером и веб-приложением строится на том, что токены генерируются и подписываются только со стороны веб-приложения. xakep.ru ru.hexlet.io Злоумышленник не сможет подделать токен, так как не знает секретный ключ, который используется для подписи токена. xakep.ru ru.hexlet.io