@heducose

Как сервер авторизации JWT и API сервер проводят валидацию токена?

не совсем понятен этот момент.

есть 2 приложения, на разных доменах.
одно - чисто авторизация, выдает токены, регистрирует.
второе - API сервер, откуда клиент запрашивает информацию.

вот пример схемы

toptal-blog-image-1426676428399.jpeg

как происходит синхронизация данных между эти серверами? это ведь должно происходить мгновенно? или по какому принципу происходит валидация токена?
  • Вопрос задан
  • 4342 просмотра
Решения вопроса 1
DarkRaven
@DarkRaven
разработка программного обеспечения
Вообще, второе приложение (API) должно уметь по данному токену получать пользователя.
По сути, JWT-токен состоит из трех частей:
  • Заголовок с алгоритмом
  • Тело
  • Подпись


В теле, обычно лежит информация вида:
  1. Когда выдан
  2. Срок действия
  3. Кто выдал
  4. Публичные метки (роли, идентификатор пользователя и т.п.)


API декодирует токен, в зависимости от алгоритма (может быть понадобится p12 - сертификат, все зависит от настроек) и на основание этой информации получает пользователя. Как только у вас истекает время жизни токена, приложение бросает 401 и вам нужно заново получить токен.

Валидация - проверка соответствия тела токена подписи, она происходит посредством механизма подписи, который определяется из первого заголовка. Тут может быть и хэширование ключом, а может и достаточно парольной фразы.

Есть другой вариант, когда сервер авторизации дает два токена, второй - то что называется refresh_token. При такой ситуации, API может запросить новый токен для этого пользователя и дальше общаться через новый токен.

Важно понимать, что использует клиент в качестве библиотеки для JWT-аутентификации (а API - это клиент), как она (библиотека) может работать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы