Интерактивная документация API доступна по ссылке:
Открыть Swagger документациюДанная система предназначена для аутентификации пользователей через Telegram. Она обеспечивает безопасный и удобный способ реализации функционала входа с использованием механизма аутентификации Telegram и QR-кодов.
Аутентификация через Telegram с использованием QR-кодов, без необходимости ввода пароля.
Полноценная система пользователей с ролями и разрешениями.
Управление организационной структурой с поддержкой множества организаций и отделов.
Детальное отслеживание пользовательских сессий и управление доступом.
Система периодов для циклических процессов.
Для использования этого API:
.env (см. раздел "Конфигурация")npm installnpm start или npm run dev для разработкиНеобходимые переменные окружения:
# Сервер
PORT=3000
NODE_ENV=development
# База данных
DB_HOST=localhost
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
DB_PORT=3306
# Telegram бот
BOT_TOKEN=your_telegram_bot_token
BOT_USERNAME=your_bot_username
# Аутентификация
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=7d
SESSION_EXPIRE_MINUTES=5
# Фронтенд
FRONTEND_URL=http://localhost:3000
Система использует автоматические миграции Sequelize для поддержания актуальной схемы базы данных.
Для сброса базы данных (ВНИМАНИЕ: это удалит все данные):
npm run reset-db
Для создания администратора используйте:
npm run create-admin
Полная документация API доступна по адресу /docs с использованием Swagger UI. Она предоставляет интерактивный интерфейс для тестирования всех эндпоинтов API.
/api/auth/generate
Генерирует новую сессию аутентификации для входа по QR-коду
/api/auth/status/:key
Возвращает статус сессии аутентификации
/api/auth/register
Регистрирует нового пользователя с предоставленной информацией
/api/auth/check/:snils
Проверяет, существует ли пользователь с указанным СНИЛС
/api/user/me
Возвращает информацию о текущем аутентифицированном пользователе
/api/user/:telegramId
Возвращает информацию о пользователе по его Telegram ID
/api/user
Возвращает список всех пользователей (требуются права администратора)
/api/user/profile
Обновляет профиль текущего пользователя
/api/user/:id
Обновляет информацию о пользователе (требуются права администратора)
/api/organization
Получает список всех организаций
/api/department
Получает список всех отделов
/api/period
Получает список всех периодов
package.json # Конфигурация проекта
public/ # Статические файлы
index.html # Страница документации
src/
server.js # Основная точка входа приложения
bot/ # Реализация Telegram бота
config/ # Файлы конфигурации
controllers/ # Контроллеры API
docs/ # Документация Swagger
middleware/ # Middleware Express
migrations/ # Миграции базы данных
models/ # Модели Sequelize
routes/ # Маршруты API
scripts/ # Служебные скрипты
services/ # Бизнес-логика
Этот проект лицензирован по лицензии ISC.
По вопросам или поддержке обращайтесь: support@luk-sirius.ru
© 2025 Система аутентификации Telegram
Interactive API documentation is available at:
Open Swagger DocumentationThis is a system for authenticating users via Telegram. It provides a secure and convenient way to implement login functionality using Telegram's authentication mechanism and QR codes.
QR code-based Telegram authentication without the need for passwords.
Comprehensive user system with 3-tier role system: User, Teacher, Admin.
Manage organizational structure with support for multiple organizations and departments.
Detailed tracking of user sessions and access management.
Period system for cyclical processes.
To use this API:
.env file (see Configuration section)npm installnpm start or npm run dev for developmentRequired environment variables:
# Server
PORT=3000
NODE_ENV=development
# Database
DB_HOST=localhost
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
DB_PORT=3306
# Telegram Bot
BOT_TOKEN=your_telegram_bot_token
BOT_USERNAME=your_bot_username
# Auth
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=7d
SESSION_EXPIRE_MINUTES=5
# Frontend
FRONTEND_URL=http://localhost:3000
The system uses Sequelize's auto-migration functionality to keep the database schema up to date.
To reset the database (WARNING: this will delete all data):
npm run reset-db
To create an admin user:
npm run create-admin
Full API documentation is available at /docs using Swagger UI. It provides an interactive interface for testing all API endpoints.
/api/auth/generate
Generates a new authentication session for QR code login
/api/auth/status/:key
Returns the status of an authentication session
/api/auth/register
Registers a new user with the provided information
/api/auth/check/:snils
Checks if a user with the given SNILS exists
/api/user/me
Returns information about the currently authenticated user
/api/user/:telegramId
Returns information about a user by their Telegram ID
/api/user
Returns a list of all users (requires admin rights)
/api/user/profile
Updates the current user's profile
/api/user/:id
Updates user information (requires admin rights)
/api/user/:id/role
Updates user role - supports: user, teacher, admin (requires admin rights)
/api/organization
Gets a list of all organizations
/api/department
Gets a list of all departments
/api/period
Gets a list of all periods
package.json # Project configuration
public/ # Static files
index.html # Documentation page
src/
server.js # Main application entry point
bot/ # Telegram bot implementation
config/ # Configuration files
controllers/ # API route controllers
docs/ # Swagger documentation
middleware/ # Express middleware
migrations/ # Database migrations
models/ # Sequelize models
routes/ # API routes
scripts/ # Utility scripts
services/ # Business logic
This project is licensed under the ISC License.
For support or questions, please contact: support@luk-sirius.ru
© 2025 Telegram Auth System