• релиз

Обновления продукта Logto

Logto v1.39.0 уже здесь, предлагая более безопасную ротацию ключа подписи, более умную обработку ошибок скриптов JWT, расширенные средства контроля безопасности в Центре аккаунтов, поддержку коннектора WhatsApp и ключевые улучшения безопасности.

Simeng
Simeng
Developer

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

Мы рады представить Logto v1.39.0 — релиз, ориентированный на более высокую операционную безопасность, гибкую настройку токенов и усиленную защиту аккаунтов конечных пользователей. В этой версии добавлен льготный период для ротации приватного ключа подписи, настраиваемая обработка ошибок пользовательских скриптов JWT, новая страница безопасности в Центре аккаунтов, поддержка коннектора WhatsApp через Meta Cloud API, а также различные улучшения безопасности и надежности во всех процессах аутентификации.

Основные моменты

  • Льготный период для ротации приватного ключа подписи: Logto теперь поддерживает льготный период при смене приватного ключа подписи, что помогает клиентам обновить кэшированные JWKS без простоя.
  • Обработка ошибок пользовательских скриптов JWT: При ошибках выполнения кастомных скриптов JWT для настройка токенов доступа и JWT клиентских данных выпуска токена теперь можно блокировать.
  • Страница безопасности в Центре аккаунтов: Конечные пользователи теперь могут управлять привязкой социальных аккаунтов, MFA и удалением аккаунта напрямую из Центра аккаунтов.
  • Коннектор WhatsApp: Новый SMS-коннектор для WhatsApp доступен через Meta Cloud API.
  • Исправления безопасности и совместимости: Ответы на проверки при сбросе пароля теперь унифицированы для снижения риска подбора аккаунтов, а перенаправления социальных/SSO во встроенных браузерах стали устойчивее.

Новые функции и улучшения

Льготный период для ротации приватного ключа подписи

Logto теперь поддерживает льготный период во время ротации приватного ключа подписи.

Это можно настроить с помощью:

  • Переменной окружения PRIVATE_KEY_ROTATION_GRACE_PERIOD.
  • Опции CLI --gracePeriod.

В течение льготного периода:

  • Новый сгенерированный ключ подписи отмечен как Next.
  • Текущий ключ подписи остается активным как Current.
  • Клиенты получают время для обновления кэшированных JWKS перед активацией нового ключа.

После окончания льготного периода:

  • Новый приватный ключ подписи становится Current.
  • Старый ключ подписи отмечается как Previous.

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

Документация: Ротация ключей подписи

Обработка ошибок пользовательских скриптов JWT

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

Внесенные изменения:

  • Кастомные скрипты JWT теперь могут блокировать выпуск токена при ошибке исполнения.
  • Метод api.denyAccess() сохраняется с ответом access_denied.
  • Другие ошибки в "блокирующем" режиме возвращаются как локализованные ответы invalid_request.
  • В Консоли добавлена отдельная вкладка Обработка ошибок для настройки поведения.
  • Для новых скриптов опция blockIssuanceOnError включена по умолчанию.
  • Для существующих скриптов без сохраненного значения сохраняется прежнее отключенное поведение.
  • Обновлены сопутствующие подсказки, фразы, схемы и интеграция в Консоли.

Это позволяет разработчикам решать, должен ли сбой скрипта при кастомизации токена разрешать или блокировать выпуск токена, ориентируясь на безопасности.

Страница безопасности в Центре аккаунтов

В этом релизе добавлена новая страница безопасности в стандартном Центре аккаунтов.

Теперь конечные пользователи могут управлять безопасностью аккаунта по адресу /account/security, в том числе:

  • Привязкой и отвязкой социальных аккаунтов.
  • Двухэтапной аутентификацией (MFA).
  • Удалением аккаунта.

Поддержка в Консоли:

  • В настройках Центра аккаунтов для входа теперь доступно поле URL для удаления аккаунта.
  • В Консоли отображаются предустановленные UI-элементы Центра аккаунтов и социальных сетей.

Коннектор WhatsApp через Meta Cloud API

Добавлен новый коннектор WhatsApp для отправки сообщений через Meta Cloud API.

Это позволяет реализовать сценарии доставки SMS/кодов подтверждения через WhatsApp с использованием официальной интеграции Meta Cloud API.

Тела ответов API для присвоения организаций

API для назначения пользователей и ролей организациям теперь возвращает тела ответов.

Обновленные эндпоинты:

  • POST /organizations/:id/users теперь возвращает { userIds: string[] }, повторяя ID пользователей из запроса.
  • POST /organizations/:id/users/:userId/roles теперь возвращает { organizationRoleIds: string[] }, в том числе итоговые, без дубликатов, ID ролей пользователя, включая разрешенные по именам ролей из запроса.

Обновление токенов тем Консоли

Темы Консоли теперь включают недостающий токен --color-overlay-primary-subtle как для светлого, так и для темного режимов.

Исправления ошибок и стабильности

Защита от перебора при сбросе пароля

Проверка при сбросе пароля теперь возвращает единый ответ verification_code.code_mismatch.

Это предотвращает возможность узнать, существует ли email или телефон, по разным ошибкам в ответах.

Социальные и SSO-редиректы во встроенных браузерах

Улучшена надежность редиректов для социальных сетей и SSO во встроенных браузерах, таких как Instagram, Facebook и LINE.

Некоторые встроенные браузеры открывают страницы провайдера OAuth в новом WebView, из-за чего содержимое sessionStorage теряется при возврате редиректа.

В этот релиз добавлен запасной вариант с localStorage:

  • Состояние редиректа по-прежнему сохраняется в sessionStorage.
  • Дополнительно резервный контекст хранится в localStorage.
  • При обратном вызове Logto восстанавливает состояние из localStorage, если sessionStorage пуст.
  • Резервные записи удаляются сразу после прочтения и автоматически очищаются через 10 минут.
  • Если оба хранилища пусты, пользователь увидит всплывающую ошибку.

IP-адрес в запросе для коннектора кода подтверждения

Исправлен баг, когда IP-адрес из запроса не передавался коннекторам при отправке кодов подтверждения.

Теперь коннекторы получают корректный контекст запроса для доставки кодов подтверждения.