Files
componentsPC/app/Http/Controllers/AuthController.php

82 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
class AuthController extends Controller
{
/**
* Регистрация пользователя.
*/
public function register(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
<<<<<<< HEAD
=======
'custom_field' => 'required|string|min:2'
>>>>>>> origin/main
]);
$user = User::create([
'name' => $validated['name'],
'email' => $validated['email'],
'password' => Hash::make($validated['password']),
<<<<<<< HEAD
'custom_field' => $request->custom_field ?? 'user', // ← ключевая строка
=======
'custom_field' => $validated['custom_field'],
>>>>>>> origin/main
]);
return response()->json([
'message' => 'Пользователь зарегистрирован.',
'user' => $user,
'token' => $user->createToken('auth_token')->plainTextToken
], 201);
}
/**
* Вход пользователя.
*/
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
throw ValidationException::withMessages([
'email' => ['Неверные учётные данные.'],
]);
}
return response()->json([
'message' => 'Успешный вход.',
'user' => $user,
'token' => $user->createToken('auth_token')->plainTextToken
]);
}
/**
* Выход (инвалидация токена).
*/
public function logout(Request $request)
{
$request->user()->currentAccessToken()->delete();
return response()->json([
'message' => 'Вы успешно вышли из системы.'
]);
}
}