123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace Src\Auth;
- use Src\Session;
- class Auth
- {
- //Свойство для хранения любого класса, реализующего интерфейс IdentityInterface
- private static IdentityInterface $user;
- //Инициализация класса пользователя
- public static function init(IdentityInterface $user): void
- {
- self::$user = $user;
- if (self::user()) {
- self::login(self::user());
- }
- }
- //Вход пользователя по модели
- public static function login(IdentityInterface $user): void
- {
- self::$user = $user;
- Session::set('id', self::$user->getId());
- }
- //Аутентификация пользователя и вход по учетным данным
- public static function attempt(array $credentials): bool
- {
- if ($user = self::$user->attemptIdentity($credentials)) {
- self::login($user);
- return true;
- }
- return false;
- }
- //Возврат текущего аутентифицированного пользователя
- public static function user()
- {
- $id = Session::get('id') ?? 0;
- return self::$user->findIdentity($id);
- }
- //Проверка является ли текущий пользователь аутентифицированным
- public static function check(): bool
- {
- if (self::user()) {
- return true;
- }
- return false;
- }
- //Выход текущего пользователя
- public static function logout(): bool
- {
- Session::clear('id');
- return true;
- }
- }
|