/
86
/
exam
Обзор
Документация
Войти
/
86
/
exam
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/AuthController.php
74 строки
2 KB
Danil Tkach
init
05 июн 2026, 00:14
Не верифицирован
05 июн 2026, 00:14
f1b3a67
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; class AuthController extends Controller { public function register(Request $request): JsonResponse { $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); $user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'password' => Hash::make($validated['password']), ]); return response()->json([ 'user' => $user, 'token' => $user->createToken('api-token')->plainTextToken, 'token_type' => 'Bearer', ], 201); } /** * @throws ValidationException */ public function login(Request $request): JsonResponse { $validated = $request->validate([ 'email' => ['required', 'string', 'email'], 'password' => ['required', 'string'], ]); $user = User::where('email', $validated['email'])->first(); if (! $user || ! Hash::check($validated['password'], $user->password)) { throw ValidationException::withMessages([ 'email' => ['Неверный email или пароль.'], ]); } return response()->json([ 'user' => $user, 'token' => $user->createToken('api-token')->plainTextToken, 'token_type' => 'Bearer', ]); } public function me(Request $request): JsonResponse { return response()->json([ 'user' => $request->user(), ]); } public function logout(Request $request): JsonResponse { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Текущий token удалён. Пользователь вышел из системы.', ]); } }