# Что нужно сделать на 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: ```json { "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.