Авторизация через мессенджеры вместо SMS — без расходов на каждое сообщение. Каждый авторизованный пользователь доступен для уведомлений по номеру телефона через тех же ботов. Система сама выбирает мессенджер, а вы задаёте приоритет.
Hosted Login — авторизация через редирект
Самый простой вариант интеграции. Вы перенаправляете пользователя на нашу страницу, мы показываем интерфейс авторизации и возвращаем пользователя обратно с ID сессии.
Бэкенд один раз вызывает GET /api/v1/auth/session/{session_id}?type=full — JWT и user (сессия после этого неактивна для повторной выдачи).
GET https://id.antirius.com/api/v1/auth/session/SESSION_ID?type=full
// Response (confirmed, first full poll):
{
"status": "confirmed",
"poll_type": "full",
"token": "eyJhbG...",
"user": {
"_id": "...",
"user_id": "...",
"first_name": "...",
"username": "..."
},
"app_id": "YOUR_APP_ID"
}
Страница hosted login использует тот же widget.js, что и на сайте. Отдельный UI не нужен — в init указываются poll_type: "status" и return_url.
Пример callback
# HostedLogin — redirect flow
# 1.Redirect user to hosted page (return_url must be inAllowed domains)
window.location.href = 'https://id.antirius.com/login/YOUR_APP_ID?return_url='
+ encodeURIComponent('https://yoursite.com/callback');
# 2.On callback — exchange session_id forJWT (once, type=full)
# GEThttps://yoursite.com/callback?session_id=SESSION_IDconst sessionId = newURLSearchParams(location.search).get('session_id');
const res = awaitfetch(
'https://id.antirius.com/api/v1/auth/session/' + sessionId + '?type=full'
);
const { token, user } = await res.json();
# Hosted page uses the same widget withpoll_type: "status" (you do not embed this on your site):
# AuthBotsWidget.init({ app_id: '...', poll_type: 'status', return_url: '...' });
Добавьте origin каждого сайта (схема и хост callback) в «Разрешённые домены» в кабинете. URL по умолчанию (вкладка Hosted Login) и параметр return_url в запросе должны использовать хост из этого списка — иначе сервис вернёт 400.