/
itp_practice
/
itp_backend
Обзор
Документация
Войти
/
itp_practice
/
itp_backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/Services/Auth/TokenService.php
42 строки
1 KB
vivanenko
fix login-logout
29 май 2025, 16:41
29 май 2025, 16:41
8020a97
Код
Авторство
О чём код?
<?php namespace App\Services\Auth; use App\DTOs\Auth\TokenLoginData; use App\DTOs\Auth\TokenRegisterData; use App\Models\User; use Illuminate\Support\Facades\Hash; use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException; class TokenService { public function register(TokenRegisterData $data): string { $user = new User(); $user->email = $data->email; $user->name = $data->name; $user->password = Hash::make($data->password); $user->save(); return $user->createToken($data->email)->plainTextToken; } public function login(TokenLoginData $data): string { $user = User::query()->where('email', $data->email)->first(); if (!$user || !Hash::check($data->password, $user->password)) { throw new UnauthorizedHttpException('Bearer', 'Invalid credentials'); } return $user->createToken($data->email)->plainTextToken; } public function logout(User $user): bool { // Удаляем все токены пользователя для полного выхода со всех устройств $user->tokens()->delete(); return true; } }