/
Francuz
/
DailyPort
Обзор
Документация
Войти
/
Francuz
/
DailyPort
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Auth.php
90 строк
3 KB
Francuz
docs: подробные комментарии ко всем PHP-файлам проекта
15 июн 2026, 08:08
15 июн 2026, 08:08
594585d
Код
Авторство
О чём код?
<?php /** * Класс Auth — менеджер аутентификации и сессий. * * Предоставляет методы для: * - попытки входа (attempt) — проверка учётных данных и создание сессии * - выхода (logout) — уничтожение сессии и редирект * - проверки авторизации (check) — проверка наличия активной сессии * - получения данных текущего пользователя (user) */ class Auth { /** @var Database Подключение к БД */ private Database $db; /** * @param Database $db Подключение к базе данных */ public function __construct(Database $db) { $this->db = $db; } /** * Пытается авторизовать пользователя. * * Создаёт объект User, устанавливает логин и пароль, * вызывает authenticate(). При успехе — заполняет сессию. * * @param string $login Логин * @param string $password Пароль в открытом виде * @return bool true если авторизация успешна */ public function attempt(string $login, string $password): bool { $user = new User(); $user->login = $login; $user->setPassword($password); if (!$user->authenticate($this->db)) { return false; } // Сохраняем данные пользователя в сессию $_SESSION['auth'] = true; $_SESSION['user_id'] = $user->id; $_SESSION['login'] = $user->login; $_SESSION['permission'] = $user->permission; return true; } /** * Выход пользователя — уничтожает сессию и перенаправляет на главную. */ public function logout(): void { session_destroy(); header('Location: /'); exit; } /** * Проверяет, авторизован ли текущий пользователь. * * @return bool true если сессия активна */ public function check(): bool { return !empty($_SESSION['auth']); } /** * Возвращает данные текущего авторизованного пользователя. * * @return array|null Ассоциативный массив [id, login, permission] или null */ public function user(): ?array { if (!$this->check()) { return null; } return [ 'id' => $_SESSION['user_id'], 'login' => $_SESSION['login'], 'permission' => $_SESSION['permission'], ]; } }