/
itp_practice
/
itp_backend
Обзор
Документация
Войти
/
itp_practice
/
itp_backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/Http/Controllers/Auth/AuthController.php
72 строки
2 KB
vivanenko
add auth
21 май 2025, 16:49
21 май 2025, 16:49
408bda1
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Auth; use App\Contracts\Auth\AuthenticationService; use App\DTOs\Auth\LoginData; use App\DTOs\Auth\RegisterUserData; use App\Http\Controllers\Controller; use App\Http\Requests\Auth\LoginRequest; use App\Http\Requests\Auth\RegisterRequest; use Illuminate\Http\JsonResponse; use RuntimeException; class AuthController extends Controller { public function __construct( private readonly AuthenticationService $authService ) {} public function register(RegisterRequest $request): JsonResponse { try { $data = RegisterUserData::fromRequest($request); $user = $this->authService->register($data); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'user' => $user, 'token' => $token ]); } catch (RuntimeException $e) { return response()->json([ 'message' => $e->getMessage() ], 422); } } public function login(LoginRequest $request): JsonResponse { try { $data = LoginData::fromRequest($request); $token = $this->authService->login($data); return response()->json([ 'user' => $this->authService->getCurrentUser(), 'token' => $token ]); } catch (RuntimeException $e) { return response()->json([ 'message' => $e->getMessage() ], 401); } } public function logout(): JsonResponse { $this->authService->logout(); return response()->json([ 'message' => 'Successfully logged out' ]); } public function user(): JsonResponse { $user = $this->authService->getCurrentUser(); return response()->json([ 'user' => $user ]); } }