phone_number и email. Часть каналов
отдаёт их сами, а недостающие приложение получает в одном из двух режимов:
- При первом входе. Veriqa добирает телефон или email внутри того же входа, до выдачи токенов.
Нужен ли claim и можно ли его пропустить, задаёт его уровень в каталоге
Veriqa:ScopesClaims— см. Сбор дополнительных claims. - Позже, при необходимости. Пользователь входит без контактов. Когда телефон или email
понадобились, приложение запускает новый authorize-запрос со
scope=phoneилиscope=email, и пользователь подтверждает его в мессенджере.
При первом входе
Телефон
Номер Veriqa запрашивает у пользователя в самом канале. Как это устроено в каждом канале и доказана ли принадлежность номера, описано на странице Номер телефона.ClaimCompletionEmailMethods записи клиента.
Пользователь видит не больше трёх способов, в порядке списка:
- Подтвердить по email — пользователь вводит адрес и нажимает одну кнопку. Что придёт,
решает список, а не пользователь: код для ввода на странице (
Code), ссылка на страницу подтверждения (MagicLink) либо одно письмо с тем и другим (claim-code-link-mail), когда список называет оба. В последнем случае адрес подтверждает то, что пользователь сделает первым.email_verified—true; - письмо от пользователя (
Push) — на устройстве, где подтвердили вход;email_verified—true; - без подтверждения (
Unverified) — адрес только вводится;email_verified—false.
Veriqa:Channels:Email:MailResendInterval после предыдущего — см.
Повторная отправка письма.
Что показывает блок email на разных шагах:
- После отправки письма — поле кода и «Отправить снова». «Отправить снова» само ничего не отправляет: оно возвращает поле адреса, заполненное адресом последнего письма, чтобы пользователь либо отправил то же письмо ещё раз, либо сначала исправил адрес.
- Код, исчерпавший попытки, возвращает блок к тому же полю адреса, пока письма в лимитах остались; когда их нет, блок говорит «У кода не осталось попыток.» и больше ничего не предлагает. Отказ по лимиту писем на адрес говорит «На этот адрес отправлено слишком много писем. Попробуйте позже или введите другой адрес.»
- Если адрес подтверждён ссылкой из письма — например, открытой на телефоне, — форма на устройстве, где начат вход, узнаёт об этом сама: она продолжает так, будто нажата «Я подтвердил адрес», и сохраняет введённое в остальные поля. Страница, перешедшая на опрос, оставляет для этого кнопку.
- Записанный адрес остаётся в блоке, пока в форме открыты другие поля: «Адрес … подтверждён», либо «Адрес … сохранён» — для адреса, принятого без подтверждения.
Позже, при необходимости
Первый вход берёт минимум:sub и то, что даёт канал. Перед действием, которому нужен контакт,
приложение запускает новый authorize-запрос со scope=phone или scope=email. Пользователь
подтверждает его в мессенджере, и claim попадает в id_token. Как это устроено в
Helio, описано на странице примера; общая схема — в
Сборе дополнительных claims.
Почему данные подтверждены
Разница с анкетой в том, кто источник значения. Адрес, введённый в форму, — утверждение пользователя; адрес, полученный claim-ом с канала Email, — следствие того, что человек подтвердил вход именно из этого ящика. Проверять его отдельным письмом уже не нужно. То же с тем, что добирает Veriqa: номер, переданный в канале, и адрес, подтверждённый кодом, приходят сphone_number_verified / email_verified, а поле формы — это то, что пользователь ввёл.