Реальные примеры использования: расширение вашей системы аутентификации с помощью вебхуков
Узнайте реальные примеры использования вебхуков Logto для аутентификации и авторизации, включая отправку приветственных писем, синхронизацию данных с вашей базой данных, обновление ролей/разрешений пользователей в режиме реального времени и интеграцию с аналитикой сторонних производителей.
С помощью вебхуков Logto вы можете получать обновления в реальном времени о конкретных событиях, таких как регистрация пользователя, вход в систему или сброс пароля, без необходимости постоянного опроса для получения обновлений. Когда событие срабатывает, Logto отправляет HTTP-запрос с информацией о событии на URL-адрес конечной точки, который вы указываете. Ваше приложение может получить запрос и принять индивидуальные меры на основе данных, например, отправить электронное письмо или обновить базу данных.
Есть некоторые возможности, которые вы не найдете непосредственно в консоли Logto, но вы можете рассмотреть возможность использования вебхуков для отслеживания поведения ваших пользователей, чтобы их достичь.
Сценарии использования вебхуков Logto
Вебхуки предоставляют неограниченные возможности для Auth систем. Вот некоторые реальные примеры и спользования, которые я приведу:
1. Отправка электронной почты или уведомления
«Могу ли я использовать Logto Email для отправки пользователям индивидуального приветственного письма с ссылкой на вход? Мы используем только вход с помощью кода подтверждения, без паролей.»
Хотя служба электронной почты Logto в настоящее время не поддерживает прямую отправку приветственных писем, это классический сценарий для вебхуков. Используйте событие User.Created
, и когда ваша конечная точка получит информацию о регистрации пользователя, немедленно отправьте приветственное письмо на его электронную почту.
Аналогично, сообщайте пользователям об обновлениях ролей, информируйте администраторов о новых участниках или отправляйте сообщения-боты в Slack или Discord, чтобы держать вашу команду в курсе.
2. Синхронизация данных
«Если я удаляю пользователя в админ-консоли, как я могу синхронизировать это с другими системами?»
Используйте событие User.Deleted
, чтобы получить изменение статуса удаления пользователя и синхронизировать его с другими системами. Вы также можете немедленно очистить пользовательскую сессию входа, что будет полезно для управления пользователями в различных приложениях.
«У меня есть несколько приложений в моем арендаторе Logto. Мне нужен вебхук, чтобы обнаруживать создание пользователя и обрабатывать его определенным приложением.»
Используйте событие PostRegister
, и Payload будет содержать информацию AppId
, что поможет вам создавать дизайн персонализированного опыта для нескольких сервисов приложений.
3. Выполнение дополнительных вызовов API
«Когда я меняю разрешения пользователя, ему нужн о выйти и заново войти, чтобы обновление вступило в силу. Может ли это происходить автоматически?»
Если администратор изменяет роль пользователя или добавляет новые разрешения, по умолчанию пользователю требуется снова войти в систему или дать согласие на обновление токена доступа. Если вы хотите, чтобы изменение авторизации вступило в силу немедленно, вы можете использовать вебхук User.Data.Updated
для уведомления и включения повторного согласия или выдавать новые токены доступа соответственно.
Кроме того, вы можете использовать короткие времена истечения токена доступа или периодически вызывать конечные точки Management API, чтобы получить роли и разрешения пользователей, но только через вебхуки вы можете получать самые своевременные обновления.
«Я хочу добавлять каждого нового пользователя в мою базу данных, отправлять на страницу «Настройте свою организацию» и разрешать приглашение в организацию только для последующих пользователей. Может ли Logto это поддерживать?»
Сначала требуется синхронизация данных, чтобы использовать вебхук Post.Register
для добавления нового пользователя в вашу базу данных. Затем используйте Logto management API для проектирования вашей страницы приглашения и создания организации.
4. Анализ данных
«Могу ли я подключить Logto к моему инструменту аналитики (Google Analytics, Umami, Plausible и т.д.) для отслеживания входов пользователей?»
Если вам нужно проанализировать данные, связанные с входами или авторизациями пользователей, вы можете использовать функциональность вебхуков Logto. Вы можете слушать вебхуки, отправляемые Logto, а затем интегрировать данные в сторонние аналитические инструменты.
Подтвердите, нужны ли вам вебхуки
Шаг 1: Подтвердите, есть ли нужные вам события Webhook
Вебхук делится на два уровня, уровень учетной записи и уровень организации, все события показаны ниже:
Чтобы упростить сегментацию ваших сценариев и получить соответствующие данные, он разделен подробно. Однако, если вам нужна информация из нескольких событий одновременно, вы можете выбрать несколько событий для одного Webhook.
Примечание: события типа «User Interaction» фиксируют действия пользователей в интерфейсе, исключая изменения, инициированные администратором. События типа «User» охватывают все действия пользователя, включая те, которые совершаются администраторами и конечными пользователями. Например, событие PostRegister
относится к регистрации пользователя в работе с Sign-in, тогда как User.Created
охватывает всех новых пользователей, зарегистрированных в пользовательском интерфейсе, а также добавленных администратором.
Шаг 2: Подтвердите, содержит ли payload запроса нужную вам информацию
Разные события несут различную информацию, вы можете подтвердить, может ли существующая информация напрямую удовлетворить ваши потребности в использовании. Например, id
, username
, primary email
, profile
, customData
, identities
, lastSignInAt
, createdAt
, applicationId
, isSuspended
, OrganizationId
, OrganizationRoleId
, OrganizationScopeId
и т. д. Для подробностей, пожалуйста, ознакомьтесь с запросом вебхука. Если нет, вы также можете использовать Management API для продолжения получения соответствующей информации о пользователе.
Шаг 3: Совместите с Management API для расширения расширенных возможностей
Вы также можете использовать Logto Management API для внедрения дальнейших функций и конфигурации.
Заключение
События вебхуков Logto не только покрывают широкий спектр сценариев, но и обеспечивают безопасную передачу посредством проверки ключа подписи и пользовательского заголовка. И вы можете просмотреть панель управления вебхуками Logto для мониторинга передачи каждого вебхука за последние 24 часа.