refactor: убрать вход через внешние провайдеры (OAuth) полностью
Решение владельца 27.09.2026 (D-084): сервис ставится на сервер конкретного человека, и ему всё равно нужен свой OAuth у провайдера — поддержка общего входа только создаёт трение (регистрация приложений, redirect URI, модерация, чужие ключи в конфиге). Способы входа остаются: пароль + 2FA и ключи доступа (WebAuthn). Удалено: - сервер: internal/auth/oauth.go, internal/server/oauth.go, internal/store/oauth.go и их тесты; поля и методы конфига OAuth*; oauthLimiter и регистрация ручек; отображение ошибок oauth.*; features.oauth_enabled/oauth_providers в /meta; - клиент: web/src/api/oauth.ts, раздел «Вход через внешние сервисы», кнопки провайдеров на странице входа, ключи i18n (ru/en), тесты и фикстуры; - установщик: переменные OAUTH_* из .env, .env.example и шаблона (хелпер чтения существующих значений переименован в existing_value — он остался нужен для VAPID_SUBJECT); - зависимость golang.org/x/oauth2 (go mod tidy). Схема: миграция 00027 удаляет таблицу oauth_accounts (00019 не переписываем — она применена на стендах). Откат миграции возвращает структуру; тест TestOAuthRemovalMigration проверяет накат, откат и повторный накат. AGENT.md (локальный) помечает пункты про OAuth как отменённые.
This commit is contained in:
@@ -38,23 +38,6 @@ TOTP_ENCRYPTION_KEY= # шифрование TOTP-секрет
|
||||
WEBHOOK_SECRET= # подпись вебхуков
|
||||
LIVEKIT_API_KEY= # ключ LiveKit (фаза 3)
|
||||
LIVEKIT_API_SECRET= # секрет LiveKit (фаза 3)
|
||||
# --- OAuth-провайдеры (Фаза 7): вход через внешние сервисы ---
|
||||
# Пусто — провайдер выключен, ручка входа отвечает oauth.provider_not_configured.
|
||||
# Адрес возврата для настроек приложения у провайдера:
|
||||
# <домен>/api/v1/auth/oauth/<github|google|discord>/callback
|
||||
OAUTH_VK_CLIENT_ID=
|
||||
OAUTH_VK_CLIENT_SECRET=
|
||||
OAUTH_YANDEX_CLIENT_ID=
|
||||
OAUTH_YANDEX_CLIENT_SECRET=
|
||||
OAUTH_GITHUB_CLIENT_ID=
|
||||
OAUTH_GITHUB_CLIENT_SECRET=
|
||||
OAUTH_GOOGLE_CLIENT_ID=
|
||||
OAUTH_GOOGLE_CLIENT_SECRET=
|
||||
OAUTH_DISCORD_CLIENT_ID=
|
||||
OAUTH_DISCORD_CLIENT_SECRET=
|
||||
# Необязательно: внешний адрес инстанса для redirect_uri (пусто — берётся из DOMAIN).
|
||||
OAUTH_REDIRECT_BASE=
|
||||
|
||||
# --- Web Push (Фаза 7): уведомления в браузере и на телефоне ---
|
||||
# Приватный VAPID-ключ (P-256) в PKCS#8 DER (base64, одной строкой). Пусто —
|
||||
# Web Push выключен. Ключ генерирует установщик; вручную — `glchat vapid-keys`.
|
||||
|
||||
Reference in New Issue
Block a user