feat: account merge flow — merge redirect, error handling, server-complete linking

- Добавлен merge_required + merge_token redirect в OAuthCallback и LinkTelegramCallback
- Server-complete OAuth linking для Mini App (внешний браузер)
- getErrorDetail: единый экстрактор ошибок из axios response
- LinkTelegramCallback: типизированный catch с getErrorDetail
- Удалён мёртвый экспорт getAndClearOAuthState
- CSRF валидация для Telegram и OAuth linking flows
- Типы ServerCompleteResponse, LinkCallbackResponse
This commit is contained in:
Fringg
2026-03-05 05:25:50 +03:00
parent 0d99ea0069
commit 2fc0759f89
10 changed files with 120 additions and 78 deletions

View File

@@ -3619,6 +3619,7 @@
"returnToTelegram": "Return to Telegram to continue",
"openTelegram": "Open Telegram",
"continueInBrowser": "Continue authorization in the opened browser",
"pollingTimeout": "Authorization check timed out. Refresh the page if you completed linking.",
"providers": {
"telegram": "Telegram",
"email": "Email",

View File

@@ -3055,6 +3055,7 @@
"returnToTelegram": "برای ادامه به تلگرام بازگردید",
"openTelegram": "باز کردن تلگرام",
"continueInBrowser": "ادامه احراز هویت در مرورگر باز شده",
"pollingTimeout": "بررسی احراز هویت منقضی شد. اگر اتصال را تکمیل کرده‌اید صفحه را بارگذاری مجدد کنید.",
"providers": {
"telegram": "تلگرام",
"email": "ایمیل",

View File

@@ -4179,6 +4179,7 @@
"returnToTelegram": "Вернитесь в Telegram, чтобы продолжить",
"openTelegram": "Открыть Telegram",
"continueInBrowser": "Продолжите авторизацию в открывшемся браузере",
"pollingTimeout": "Проверка авторизации истекла. Обновите страницу, если привязка завершена.",
"providers": {
"telegram": "Telegram",
"email": "Email",

View File

@@ -3054,6 +3054,7 @@
"returnToTelegram": "返回 Telegram 继续操作",
"openTelegram": "打开 Telegram",
"continueInBrowser": "请在打开的浏览器中继续授权",
"pollingTimeout": "授权检查超时。如果您已完成关联,请刷新页面。",
"providers": {
"telegram": "Telegram",
"email": "邮箱",