2.6 KiB
2.6 KiB
Что нужно сделать на backend для Telegram-логина
BackOffice уже готов к текущему backend: сначала пробует новый /userauth/* контракт из marketplaces/docs/telegram-login-dialog.html, а если backend отвечает 404, использует текущий marketplace-flow через /users/sessions.
Чтобы все работало строго по новому единому контракту, нужно сделать следующее.
Auth-service
Добавить или включить endpoints:
POST /userauth/qr/create- создать короткоживущий QR/login token и вернуть ссылку Telegram.GET /userauth/qr/poll?token=...- вернуть статусpending,confirmedилиexpired.GET /userauth/session- вернуть текущую активную сессию пользователя или401/404, если сессии нет.POST /userauth/logout- завершить текущую сессию.
Минимальный ответ для подтвержденного login:
{
"status": "confirmed",
"session": {
"sessionId": "uuid",
"telegramUserId": "123456",
"username": "user",
"displayName": "User Name",
"active": true,
"expiresAt": "2026-06-21T12:00:00Z"
}
}
Main API
Поддержать активацию backend API-сессии:
POST /usersession/{sessionId}- принять подтвержденныйsessionIdиз auth-service и открыть доступ к marketplace/backoffice API.
CORS и credentials
Разрешить реальные frontend origins для BackOffice и Marketplace:
- production domain BackOffice;
https://dexarmarket.ru, если marketplace и backoffice используют общий auth-flow;- dev через proxy уже настроен на frontend стороне.
Нужно разрешить:
Access-Control-Allow-Credentials: true;- методы
GET,POST,DELETE,OPTIONS; - headers
Content-Type,WebSessionID; - cookies с
SameSite=None; Secure; HttpOnly, если auth-service использует cookie-сессию.
Совместимость
Пока /userauth/* не развернуты, нельзя выключать текущие marketplace endpoints:
POST /users/sessions;GET /users/sessions/{sessionId};DELETE /users/sessions/{sessionId}.
BackOffice сейчас использует их как fallback, чтобы логин уже работал на текущем backend.