Как это работает
Каждое приложение получает собственный origin для входа и собственный издатель токенов. Live- и sandbox-приложения разделены: у них разные origin, настройки и идентичности.
Используется OAuth 2.0 с кодом авторизации и PKCE (только
S256):
- Ваше приложение открывает
{origin}/sign-inсredirect_uri,state,code_challengeиcode_challenge_method=S256. - Размещённая страница выполняет вход или регистрацию пользователя включёнными вами методами, включая обязательный второй фактор, если он требуется.
- Браузер возвращает пользователя на ваш
redirect_uriсcodeиstate. - Ваше приложение обменивает код через
POST {origin}/token/на токен доступа, ID-токен и токен обновления.
Выберите платформу
JavaScript
Размещённая страница входа, обратный вызов, сессия и выход.
React
Клиентское состояние и защищённые экраны приложения.
Next.js
Серверные сессии, маршруты обратного вызова и файлы cookie.
iOS
Системный браузер и безопасное хранение токенов.
Android
Авторизация через браузер и обратный вызов в приложении.
React Native
Подготовка нативной обёртки для аутентификации.
Flutter
Подготовка нативной обёртки для аутентификации.
Подготовьте приложение
- Попросите Didit включить Authentication для вашего приложения. Сначала протестируйте в приложении-песочнице.
- Зарегистрируйте точные URL перенаправления (до 50) и браузерные
allowed_origins(до 50), с которых вызывается API среды выполнения. - Включите нужные методы входа. Didit ID Wallet всегда включён.
- Настройте параметры сессий и паролей (см. ниже).
- Перед запуском протестируйте регистрацию, вход, восстановление пароля, MFA, истечение сессии и выход.
URL перенаправления
Didit возвращает пользователя только на адрес, который вы зарегистрировали. Зарегистрируйте его в консоли в разделе Authentication > Security and sessions > Redirect URLs and allowed origins.redirect_uri в запросе на вход должен точно совпадать с зарегистрированным URL посимвольно: схема, хост, порт, путь и параметры запроса. Другой порт, завершающий слеш или другой регистр букв означают другой адрес.
Подстановочные знаки, фрагменты, учётные данные в URL и пользовательские схемы отклоняются.
Если адрес не зарегистрирован, Didit никогда не перенаправляет на него.
{origin}/sign-in возвращает 400 со страницей, которая объясняет, что и где нужно зарегистрировать, а POST {origin}/authorize/ возвращает 400 {"error": "invalid_redirect_uri"}.
Локальная разработка
Тестируйте на своей машине с приложением-песочницей:- Зарегистрируйте URL обратного вызова с портом, например
http://localhost:3000/auth/callback. - Если код в браузере вызывает API среды выполнения, например для обмена кодом через
POST {origin}/token/, добавьте origin также в Allowed origins:http://localhost:3000, без пути и завершающего слеша. - Запустите вход на origin песочницы,
https://<slug>.sandbox.auth.didit.me, с вашим ключомpk_test_....
localhost, 127.0.0.1 и [::1] являются разными адресами, и каждый порт тоже считается отдельным адресом.
Регистрируйте каждый адрес и порт, которые вы используете.
Live-приложения никогда не принимают http://.
Перед запуском зарегистрируйте ваш продакшн-URL обратного вызова с https:// в продакшн-приложении.
Настройки приложения
Вы управляете этими настройками в консоли или с помощью авторизованной сессии консоли, у которой есть правоwrite:authentication.
Один человек в разных продуктах
У каждой личности есть значениеvendor_data. Это external_id, который вы передали при импорте пользователя, или, если импорта не было, идентификатор личности Didit. Оно передается в токен доступа, ID-токен и в GET session/.
Используйте то же значение как vendor_data при создании сессий верификации и отправке транзакций. Тогда события аутентификации попадут в консоли к тому же человеку, что и события его верификаций и транзакций. См. события и webhook.
Формируйте vendor_data на своем бэкенде на основе проверенного токена, а не из непроверенного поля браузера.
Для любой комбинации используйте общий промпт для интеграции. Ознакомьтесь с разделом защита от ботов о политиках, которые применяются при входе.