This commit is contained in:
2026-01-15 09:32:13 +06:00
parent 14f020e819
commit 303d38f28e
19 changed files with 2072 additions and 14 deletions

76
ZITADEL_QUICK_START.md Normal file
View File

@@ -0,0 +1,76 @@
# 🚀 Быстрый старт с ZITADEL
## Что нужно сделать
### 1⃣ Создать приложение в ZITADEL
1. Зайдите на [zitadel.cloud](https://zitadel.cloud) или используйте свой инстанс
2. Создайте новый проект или выберите существующий
3. Нажмите **"New Application"**
4. Выберите **"Web Application"**
5. Выберите **"Code (with PKCE)"**
6. Добавьте Redirect URI: `http://localhost:8000/api/auth/oidc/zitadel/callback`
7. Сохраните **Client ID** и **Client Secret**
### 2⃣ Настроить .env файл
Откройте `backend/.env` и добавьте:
```bash
# ZITADEL Configuration
ZITADEL_ISSUER=https://your-instance.zitadel.cloud
ZITADEL_CLIENT_ID=123456789012345678@your-project
ZITADEL_CLIENT_SECRET=your-secret-key-here
# URLs
BASE_URL=http://localhost:8000
FRONTEND_URL=http://localhost:3000
```
### 3⃣ Запустить приложение
```bash
# Backend
cd backend
python main.py
# Frontend (в другом терминале)
cd frontend
npm run dev
```
### 4⃣ Проверить
1. Откройте http://localhost:3000
2. Увидите кнопку **"Войти через ZITADEL"** 🔐
3. Нажмите и войдите через ZITADEL
4. Готово! ✅
## Что происходит?
1. **Пользователь нажимает кнопку** → Перенаправление на ZITADEL
2. **Вход в ZITADEL** → Пользователь вводит логин/пароль
3. **Callback** → ZITADEL возвращает код авторизации
4. **Обмен кода на токен** → Backend получает данные пользователя
5. **Создание пользователя** → Автоматическое создание в системе
6. **JWT токен** → Пользователь получает токен для доступа
7. **Автоматический вход** → Перенаправление в панель
## Проблемы?
### Кнопка ZITADEL не появляется
- Проверьте `.env` файл
- Убедитесь что `ZITADEL_CLIENT_ID` и `ZITADEL_ISSUER` заполнены
- Перезапустите backend
### Ошибка "Invalid redirect_uri"
- Проверьте Redirect URI в настройках ZITADEL
- Должен быть: `http://localhost:8000/api/auth/oidc/zitadel/callback`
### Ошибка "Invalid client"
- Проверьте `ZITADEL_CLIENT_ID` и `ZITADEL_CLIENT_SECRET`
- Убедитесь что приложение активно в ZITADEL
## Готово! 🎉
Теперь пользователи могут входить через ZITADEL!