Logto v1.39.0 уже здесь, предлагая более безопасную ротацию ключа подписи, более умную обработку ошибок скриптов JWT, расширенные средства контроля безопасности в Центре аккаунтов, поддержку коннектора WhatsApp и ключевые улучшения безопасности.
SimengDeveloper
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Мы рады представить Logto v1.39.0 — релиз, ориентированный на более высокую операционную безопасность, гибкую настройку токенов и усиленную защиту аккаунтов конечных пользователей. В этой версии добавлен льготный период для ротации приватного ключа подписи, настраиваемая обработка ошибок пользовательских скриптов JWT, новая страница безопасности в Центре аккаунтов, поддержка коннектора WhatsApp через Meta Cloud API, а также различные улучшения безопасности и надежности во всех процессах аутентификации.
Льготный период для ротации приватного ключа подписи: Logto теперь поддерживает льготный период при смене приватного ключа подписи, что помогает клиентам обновить кэшированные JWKS без простоя.
Обработка ошибок пользовательских скриптов JWT: При ошибках выполнения кастомных скриптов JWT для настройка токенов доступа и JWT клиентских данных выпуска токена теперь можно блокировать.
Страница безопасности в Центре аккаунтов: Конечные пользователи теперь могут управлять привязкой социальных аккаунтов, MFA и удалением аккаунта напрямую из Центра аккаунтов.
Коннектор WhatsApp: Новый SMS-коннектор для WhatsApp доступен через Meta Cloud API.
Исправления безопасности и совместимости: Ответы на проверки при сбросе пароля теперь унифицированы для снижения риска подбора аккаунтов, а перенаправления социальных/SSO во встроенных браузерах стали устойчивее.
Logto теперь поддерживает настраиваемую обработку ошибок пользовательских скриптов JWT, используемых в процессах выдачи токенов доступа и клиентских токенов.
Внесенные изменения:
Кастомные скрипты JWT теперь могут блокировать выпуск токена при ошибке исполнения.
Метод api.denyAccess() сохраняется с ответом access_denied.
Другие ошибки в "блокирующем" режиме возвращаются как локализованные ответы invalid_request.
В Консоли добавлена отдельная вкладка Обработка ошибок для настройки поведения.
Для новых скриптов опция blockIssuanceOnError включена по умолчанию.
Для существующих скриптов без сохраненного значения сохраняется прежнее отключенное поведение.
Обновлены сопутствующие подсказки, фразы, схемы и интеграция в Консоли.
Это позволяет разработчикам решать, должен ли сбой скрипта при кастомизации токена разрешать или блокировать выпуск токена, ориентируясь на безопасности.
API для назначения пользователей и ролей организациям теперь возвращает тела ответов.
Обновленные эндпоинты:
POST /organizations/:id/users теперь возвращает { userIds: string[] }, повторяя ID пользователей из запроса.
POST /organizations/:id/users/:userId/roles теперь возвращает { organizationRoleIds: string[] }, в том числе итоговые, без дубликатов, ID ролей пользователя, включая разрешенные по именам ролей из запроса.
Проверка при сбросе пароля теперь возвращает единый ответ verification_code.code_mismatch.
Это предотвращает возможность узнать, существует ли email или телефон, по разным ошибкам в ответах.
Социальные и SSO-редиректы во встроенных браузерах#
Улучшена надежность редиректов для социальных сетей и SSO во встроенных браузерах, таких как Instagram, Facebook и LINE.
Некоторые встроенные браузеры открывают страницы провайдера OAuth в новом WebView, из-за чего содержимое sessionStorage теряется при возврате редиректа.
В этот релиз добавлен запасной вариант с localStorage:
Состояние редиректа по-прежнему сохраняется в sessionStorage.
Дополнительно резервный контекст хранится в localStorage.
При обратном вызове Logto восстанавливает состояние из localStorage, если sessionStorage пуст.
Резервные записи удаляются сразу после прочтения и автоматически очищаются через 10 минут.
Если оба хранилища пусты, пользователь увидит всплывающую ошибку.
IP-адрес в запросе для коннектора кода подтверждения#
Исправлен баг, когда IP-адрес из запроса не передавался коннекторам при отправке кодов подтверждения.
Теперь коннекторы получают корректный контекст запроса для доставки кодов подтверждения.