Реальные примеры использования: расширение вашей системы аутентификации с помощью вебхуков
Узнайте реальные примеры использования вебхуков Logto для аутентификации и авторизации, включая отправку приветственных писем, синхронизацию данных с вашей базой данных, обновление ролей/разрешений пользователей в режиме реального времени и интеграцию с аналитикой сторонних производителей.
RanProduct & Design
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
С помощью вебхуков Logto вы можете получать обновления в реальном времени о конкретных событиях, таких как регистрация пользователя, вход в систему или сброс пароля, без необходимости постоянного опроса для получения обновлений. Когда событие срабатывает, Logto отправляет HTTP-запрос с информацией о событии на URL-адрес конечной точки, который вы указываете. Ваше приложение может получить запрос и принять индивидуальные меры на основе данных, например, отправить электронное письмо или обновить базу данных.
Есть некоторые возможности, которые вы не найдете непосредственно в консоли Logto, но вы можете рассмотреть возможность использования вебхуков для отслеживания поведения ваших пользователей, чтобы их достичь.
«Могу ли я использовать Logto Email для отправки пользователям индивидуального приветственного письма с ссылкой на вход? Мы используем только вход с помощью кода подтверждения, без паролей.»
Хотя служба электронной почты Logto в настоящее время не поддерживает прямую отправку приветственных писем, это классический сценарий для вебхуков. Используйте событие User.Created, и когда ваша конечная точка получит информацию о регистрации пользователя, немедленно отправьте приветственное письмо на его электронную почту.
Аналогично, сообщайте пользователям об обновлениях ролей, информируйте администраторов о новых участниках или отправляйте сообщения-боты в Slack или Discord, чтобы держать вашу команду в курсе.
«Если я удаляю пользователя в админ-консоли, как я могу синхронизировать это с другими системами?»
Используйте событие User.Deleted, чтобы получить изменение статуса удаления пользователя и синхронизировать его с другими системами. Вы также можете немедленно очистить пользовательскую сессию входа, что будет полезно для управления пользователями в различных приложениях.
«У меня есть несколько приложений в моем арендаторе Logto. Мне нужен вебхук, чтобы обнаруживать создание пользователя и обрабатывать его определенным приложением.»
Используйте событие PostRegister, и Payload будет содержать информацию AppId, что поможет вам создавать дизайн персонализированного опыта для нескольких сервисов приложений.
«Когда я меняю разрешения пользователя, ему нужно выйти и заново войти, чтобы обновление вступило в силу. Может ли это происходить автоматически?»
Если администратор изменяет роль пользователя или добавляет новые разрешения, по умолчанию пользователю требуется снова войти в систему или дать согласие на обновление токена доступа. Если вы хотите, чтобы изменение авторизации вступило в силу немедленно, вы можете использовать вебхук User.Data.Updated для уведомления и включения повторного согласия или выдавать новые токены доступа соответственно.
Кроме того, вы можете использовать короткие времена истечения токена доступа или периодически вызывать конечные точки Management API, чтобы получить роли и разрешения пользователей, но только через вебхуки вы можете получать самые своевременные обновления.
«Я хочу добавлять каждого нового пользователя в мою базу данных, отправлять на страницу «Настройте свою организацию» и разрешать приглашение в организацию только для последующих пользователей. Может ли Logto это поддерживать?»
Сначала требуется синхронизация данных, чтобы использовать вебхук Post.Register для добавления нового пользователя в вашу базу данных. Затем используйте Logto management API для проектирования вашей страницы приглашения и создания организации.
«Могу ли я подключить 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 часа.