Auth
in package
Table of Contents
Properties
Methods
- __construct() : mixed
- Конструктор с инъекцией запроса
- __get() : mixed
- Магические методы для доступа к данным пользователя
- __set() : mixed
- apiLogin() : self|null
- API аутентификация
- configure() : void
- Установка конфигурации
- delete() : bool
- Удаление пользователя
- getTokens() : array<string|int, mixed>
- Получение токенов
- invalidateToken() : void
- Инвалидация токена
- login() : self
- Авторизация пользователя
- logout() : Response
- Выход из системы
- refreshTokens() : array<string|int, mixed>
- Обновление токенов
- register() : self
- Регистрация нового пользователя
- set() : Response
- Установка токенов в ответ
- start() : self
- Старт аутентификации
- clearAuthCookie() : Response
- Очистка auth cookie
- decodeAndVerifyJWT() : object|null
- Декодирование и верификация JWT
- generateJWT() : string
- Генерация JWT токена
- generateTokens() : array<string|int, mixed>
- Генерация пары токенов
- getTokenFromRequest() : string|null
- Получение токена из запроса
- getUserById() : array<string|int, mixed>|null
- Получение пользователя по ID
- isTokenExpired() : bool
- Проверка срока действия токена
- isTokenInvalidated() : bool
- Проверка токена в черном списке
- maybeCleanupTokens() : void
- Очистка старых токенов
- tryAuthenticate() : void
- Попытка аутентификации
- validateData() : void
- Валидация данных
- validateToken() : object|null
- Валидация токена
Properties
$config
private
static mixed
$config
= [
'table' => 'users',
'login_fields' => ['email', 'password'],
'registration_fields' => ['email', 'password', 'name'],
'jwt_secret' => 'your-secret-key',
'jwt_algorithm' => 'HS256',
'jwt_expire' => 3600,
// 1 час
'refresh_expire' => 2592000,
// 30 дней
'cookie_name' => 'AUTHTOKEN',
'cookie_domain' => '',
'cookie_secure' => false,
'cookie_httponly' => true,
'tokens_table' => 'meract_tokens',
'token_cleanup_probability' => 0.1,
// 10% chance
'max_invalid_tokens' => 1000,
]
$request
private
mixed
$request
$tokens
private
mixed
$tokens
= null
$user
private
mixed
$user
= null
Methods
__construct()
Конструктор с инъекцией запроса
public
__construct(Request $request) : mixed
Parameters
- $request : Request
__get()
Магические методы для доступа к данным пользователя
public
__get(mixed $name) : mixed
Parameters
- $name : mixed
__set()
public
__set(mixed $name, mixed $value) : mixed
Parameters
- $name : mixed
- $value : mixed
apiLogin()
API аутентификация
public
static apiLogin(string $token) : self|null
Parameters
- $token : string
Return values
self|nullconfigure()
Установка конфигурации
public
static configure(array<string|int, mixed> $config) : void
Parameters
- $config : array<string|int, mixed>
delete()
Удаление пользователя
public
static delete(int $userId) : bool
Parameters
- $userId : int
Return values
boolgetTokens()
Получение токенов
public
getTokens() : array<string|int, mixed>
Return values
array<string|int, mixed>invalidateToken()
Инвалидация токена
public
static invalidateToken(string $token) : void
Parameters
- $token : string
login()
Авторизация пользователя
public
static login(array<string|int, mixed> $credentials, Request $request) : self
Parameters
- $credentials : array<string|int, mixed>
- $request : Request
Return values
selflogout()
Выход из системы
public
logout(Response $response) : Response
Parameters
- $response : Response
Return values
ResponserefreshTokens()
Обновление токенов
public
static refreshTokens(string $refreshToken) : array<string|int, mixed>
Parameters
- $refreshToken : string
Return values
array<string|int, mixed>register()
Регистрация нового пользователя
public
static register(array<string|int, mixed> $data, Request $request) : self
Parameters
- $data : array<string|int, mixed>
- $request : Request
Return values
selfset()
Установка токенов в ответ
public
set(Response $response) : Response
Parameters
- $response : Response
Return values
Responsestart()
Старт аутентификации
public
static start(Request $request) : self
Parameters
- $request : Request
Return values
selfclearAuthCookie()
Очистка auth cookie
private
clearAuthCookie(Response $response) : Response
Parameters
- $response : Response
Return values
ResponsedecodeAndVerifyJWT()
Декодирование и верификация JWT
private
decodeAndVerifyJWT(string $token) : object|null
Parameters
- $token : string
Return values
object|nullgenerateJWT()
Генерация JWT токена
private
generateJWT(int $userId, int $expire[, bool $isRefresh = false ]) : string
Parameters
- $userId : int
- $expire : int
- $isRefresh : bool = false
Return values
stringgenerateTokens()
Генерация пары токенов
private
generateTokens(int $userId) : array<string|int, mixed>
Parameters
- $userId : int
Return values
array<string|int, mixed>getTokenFromRequest()
Получение токена из запроса
private
getTokenFromRequest() : string|null
Return values
string|nullgetUserById()
Получение пользователя по ID
private
getUserById(int $userId) : array<string|int, mixed>|null
Parameters
- $userId : int
Return values
array<string|int, mixed>|nullisTokenExpired()
Проверка срока действия токена
private
isTokenExpired(object $payload) : bool
Parameters
- $payload : object
Return values
boolisTokenInvalidated()
Проверка токена в черном списке
private
isTokenInvalidated(string $token) : bool
Parameters
- $token : string
Return values
boolmaybeCleanupTokens()
Очистка старых токенов
private
maybeCleanupTokens([bool $force = false ]) : void
Parameters
- $force : bool = false
tryAuthenticate()
Попытка аутентификации
private
tryAuthenticate() : void
validateData()
Валидация данных
private
static validateData(array<string|int, mixed> $data, array<string|int, mixed> $requiredFields) : void
Parameters
- $data : array<string|int, mixed>
- $requiredFields : array<string|int, mixed>
validateToken()
Валидация токена
private
validateToken(string $token[, bool $isRefresh = false ]) : object|null
Parameters
- $token : string
- $isRefresh : bool = false