У аккаунта Агентики может быть несколько способов входа. Раздел Настройки → Аккаунт показывает email аккаунта, форму смены пароля и список привязанных способов входа.

Способы входа

Каждый способ входа — это отдельная identity одного и того же аккаунта Агентики. Их возвращает GET /api/v1/user/auth/identities, первым идёт основной:
Все привязанные identity ведут в один и тот же аккаунт Агентики: с какой бы из них вы ни вошли, вы попадёте в ту же организацию с теми же агентами.

Смена пароля

Карточка Пароль запрашивает текущий пароль и новый пароль дважды. Под капотом вызывается POST /api/v1/user/auth/password, который:
  1. Сначала проверяет текущий пароль — неверный отклоняется с сообщением «Current password is incorrect.»
  2. Применяет политику паролей и возвращает конкретную причину, если новый пароль ей не соответствует.
Этот endpoint меняет существующий пароль, но не создаёт его. Если аккаунт был создан только через соцвход (то есть у него нет identity emailpassword), запрос отклоняется с сообщением «This account has no email/password login to change.» Сценария, который добавляет вход по email и паролю к чисто соцаккаунту, сейчас нет.

Привязка входа через Yandex

Если вход через Yandex настроен в вашем развёртывании и Yandex-identity ещё не привязана, под списком способов входа появляется кнопка Привязать Yandex.
  1. POST /api/v1/user/auth/link/start возвращает authorization URL Yandex, привязанный к одноразовому тикету; тикет хранится на сервере рядом с вашим user id 5 минут.
  2. Вы подтверждаете доступ на стороне Yandex, и он возвращает вас на callback Агентики. Callback ничего не привязывает: он сохраняет authorization code рядом с тикетом и выдаёт браузеру одноразовую cookie HttpOnly.
  3. Затем страница аккаунта вызывает POST /api/v1/user/auth/link/complete с вашей сессией и этой cookie. Привязку выполняет только этот аутентифицированный шаг.
Требование одновременно сессии и cookie как раз и не даёт злоумышленнику привязать свой Yandex-аккаунт к чужому аккаунту Агентики. Привязка может завершиться так:
VK поддерживается как провайдер входа, но сценария привязки VK сейчас нет: endpoints привязки работают только с Yandex. Если вы регистрировались через VK, эта identity является у вас основной.

Отвязка способа входа

Нажмите Отвязать рядом со способом входа или вызовите POST /api/v1/user/auth/unlink с телом {"provider": "yandex"}. От потери доступа вас защищает основная identity:
  • Основную identity — ту, что создала аккаунт, — отвязать нельзя. API отклоняет запрос с сообщением «Cannot unlink your primary login.», а интерфейс не рисует рядом с ней кнопку отвязки.
  • Попытка отвязать провайдера, который никогда не привязывался, возвращает «No such linked login.»
Поскольку основная identity сохраняется всегда, удалить последний способ входа невозможно.