tg_client WebSocket Docs: Auth
Endpoint
wss://<host>/ws/tg-auth/
Routing: tg_client/routing.py, consumer: tg_client/auth/consumers.py.
Workflow (загальний)
- Клієнт підключається до
/ws/tg-auth/, отримує{"type":"connected"}. - Надсилає
startзuserbot_idіphone. - Якщо Telegram вимагає код: приходить
code_required, клієнт шлеsend_code. - Якщо потрібен 2FA: приходить
password_required, клієнт шлеsend_password. - При успіху приходить
authorized, профіль userbot оновлюється в БД.
Можливі проміжні стани: status, info, error.
Auth Commands
| Action | Що приймає | Що повертає | Що робить |
|---|---|---|---|
start |
userbot_id, phone |
status, далі code_required / password_required / authorized або error |
Стартує TDLib auth session, запускає login flow. |
send_code |
code |
password_required / authorized або error |
Надсилає код підтвердження в активну auth-сесію. |
send_password |
password |
authorized або error |
Надсилає пароль 2FA в активну auth-сесію. |
Приклади запитів
{
"action": "start",
"userbot_id": 1,
"phone": "+380991112233"
}
{
"action": "send_code",
"code": "12345"
}
{
"action": "send_password",
"password": "my-2fa-password"
}
Response Types
| type | Коли приходить | Payload |
|---|---|---|
connected |
Після відкриття WS-зʼєднання | {"type":"connected","message":"WebSocket connected"} |
status |
Проміжний технічний стан | Текст у message (наприклад, Connecting / Sending code) |
code_required |
Потрібен confirmation code | {"type":"code_required","message":"Confirmation code sent"} |
password_required |
Потрібен 2FA пароль | {"type":"password_required","message":"2FA password required"} |
authorized |
Успішна авторизація | type, message, username, tg_nickname, phone |
info |
Інформаційна подія (наприклад, session already started) | {"type":"info","message":"..."} |
error |
Валідаційні/сесійні/TDLib помилки | {"type":"error","message":"..."} |
Приклади відповідей
{"type":"code_required","message":"Confirmation code sent"}
{"type":"password_required","message":"2FA password required"}
{"type":"authorized","message":"Authorization completed","username":"my_user","tg_nickname":"John Doe","phone":"+380991112233"}
{"type":"error","message":"Session not initialized"}
Важливі правила
startвимагає валіднийphoneз префіксом+іuserbot_id.send_code/send_passwordпрацюють тільки після успішногоstart.- Після
authorizedauth-сесія очищається; для нового входу треба новийstart.
Для REST auth див. accounts/docs/auth.