Аутентификация с помощью магической ссылки
Научитесь внедрять магические ссылки для входа без пароля, регистрации только по приглашениям и приглашений участников организации с использованием одноразовых токенов.
Научитесь внедрять магические ссылки для входа без пароля, регистрации только по приглашениям и приглашений участников организации с использованием одноразовых токенов.
Магическая ссылка — это метод аутентификации без пароля, когда пользователь получает одноразовый URL для входа по электронной почте (или SMS). Клик по ссылке позволяет войти без необходимости ввода пароля.
Вот некоторые ключевые функции безопасности магических ссылок:
Магическая ссылка состоит из:
Например, магическая ссылка может выглядеть так:
Для создания магической ссылки вам нужно сгенерировать одноразовый токен, безопасно отправить его пользователю, а затем проверить его, когда пользователь кликнет по ссылке.
Используйте Management API Logto для создания одноразового токена.
Пример запроса payload:
После получения одноразового токена вы можете составить магическую ссылку и отправить ее на электронную почту конечного пользователя. В магической ссылке должны быть указаны токен и электронная почта пользователя в качестве параметров и должна быть ссылка на целевую страницу вашего приложения. E.g. https://yourapp.com/landing-page.
Вот простой пример того, как может выглядеть магическая ссылка:
Примечание:
Имена параметров в магической ссылке можно полностью настроить. Вы можете добавить дополнительную информацию в магическую ссылку в зависимости от требований вашего приложения, а также кодировать все параметры URL.
После того как конечный пользователь кликнет по магической ссылке и перейдет в ваше приложение, вы можете извлечь параметры token и email из URL, а затем вызвать функцию signIn() из Logto SDK, чтобы активировать поток аутентификации.
Для получения более подробной информации ознакомьтесь с Logto Docs - Magic Link (One-time Token).
Магические ссылки могут заменить шаг аутентификации первого фактора, но не могут обойти многофакторную аутентификацию (MFA).
В Logto при создании магической ссылки с одноразовым токеном вам не нужно указывать, предназначена ли она для входа или регистрации. Мы автоматически определяем поток, исходя из статуса регистрации по электронной почте:
Logto поддерживает следующие сценарии с магическими ссылками:
В настоящее время не поддерживается:
Дайте нам знать, если вам нужна дополнительная настройка.
Для новых продуктов (например, AI-инструментов) в процессе внутреннего тестирования или внутренних инструментов вы можете отключить публичную регистрацию и разрешить доступ к вашему приложению только определенным пользователям. Чтобы реализовать это с помощью Logto:
Перейдите в Консоль > Опыт входа > Вход и регистрация > Расширенные параметры и выключите "Включить регистрацию пользователей", чтобы закрыть публичную регистрацию.

Соберите адреса электронной почты пользователей, которых вы хотите пригласить (например, через ваш веб-сайт или по рекомендациям от существующих пользователей).
Создайте и отправьте магическую приглашение, как описано выше (запросите одноразовый токен, составьте магическую ссылку, активируйте аутентификацию через Logto SDK).
Примечание: Установите время истечения срока действия ссылки на приглашение. Рекомендуется сделать ссылку действительной хотя бы на один день. Используйте следующий запрос для генерации одноразового токена:
Отправьте магическую ссылку на электронную почту пользователя (например, https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Настройте шаблон электронной почты, например:

Когда пользователи нажимают "Принять приглашение", они автоматически регистрируются в вашем сервисе, даже если публичная регистрация отключена. Это называется "Целевое приглашение пользователя".
Для многопользовательских продуктов (например, SaaS-приложений, таких как Slack, GitHub, Vercel) обеспечьте беспрепятственный процесс приглашения участников для управления членством в организации. Используйте магические ссылки для повышения коэффициента конверсии в приглашениях участников.
Следуйте документации Logto для реализации создания организации, контроля доступа на основе ролей в организации и управления организацией: Logto Organizations.
Установите процесс "Пригласить участников" в вашем продукте. Пример:

Следуйте этому руководству, чтобы пригласить участников организации. Примечание: При приглашении участников убедитесь, что в запросе включается:
context: jitOrganizationIds для указания, в какую организацию/организации должен вступить пользователь.expiresIn (например, 2 дня или 1 неделя), чтобы пользователи имели достаточно времени для принятия приглашения.Пример запроса:
Отправьте ссылку на приглашение на электронную почту пользователя (например, https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Настройте шаблон электронной почты, например:

Когда пользователи нажимают "Принять приглашение", они автоматически войдут в систему или зарегистрируются и автоматически вступят в организацию.
Что произойдет, если пользователь уже вошел в систему и кликнет по другой магической ссылке?
Чтобы правильно обрабатывать конфликты аккаунтов, убедитесь в следующем:
login в "подсказку для входа": не устанавливайте подсказку для входа, включающую login. Если настроено неправильно, Logto автоматически войдет в аккаунт, связанный с токеном магической ссылки, обходя подсказку переключения аккаунта.signIn() укажите параметр clearTokens: false, чтобы предотвратить очистку существующих токенов. Если эта опция используется, убедитесь, что вы вручную очищаете токены на странице обратного вызова при входе.После правильной настройки пользовательский опыт будет следующим:

Когда пользователи кликают по недействительной магической ссылке, они будут перенаправлены на страницу ошибки с ясным объяснением проблемы. Ниже приведены возможные сценарии ошибок и их сообщения:
| Имя | Описание |
|---|---|
| token_not_found | Активный токен не найден по указанной электронной почте и токену. |
| email_mismatch | Несоответствие электронной почты с указанным токеном. |
| token_expired | Срок действия токена истёк. |
| token_consumed | Токен уже использован. |
| token_revoked | Токен отозван. |
| cannot_reactivate_token | Невозможно повторно активировать токен. |
Каждая страница ошибки предоставит конкретное сообщение, помогая пользователям понять причину недействительности магической ссылки и направляя их на следующие шаги. Например:

Logto обеспечивает уровень безопасности на уровне предприятия благодаря гибким потокам входа без пароля с использованием магических ссылок. Это простой, но мощный способ создать плавный пользовательский опыт — будь то приглашение пользователей присоединиться к организации, позволение им легко создавать аккаунты или предоставление удобной аутентификации. И благодаря тому, что Logto решает сложные ситуации, такие как конфликты аккаунтов и истекшие токены, ваши пользователи получают безопасный и без проблем процесс каждый раз.
Готовы модернизировать вашу IAM с надёжной аутентификацией?