Аутентификация Laravel: методы и примеры кода для регистрации пользователей, входа в систему и выхода из системы

Вот пример аутентификации Laravel с использованием различных методов:

  1. Регистрация пользователя:

    use App\Models\User;
    use Illuminate\Support\Facades\Hash;
    public function register()
    {
    $validatedData = request()->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:8',
    ]);
    $validatedData['password'] = Hash::make($validatedData['password']);
    $user = User::create($validatedData);
    // Additional logic after registration if needed
    return response()->json(['message' => 'Registration successful'], 201);
    }
  2. Вход пользователя:

    use Illuminate\Support\Facades\Auth;
    public function login()
    {
    $credentials = request()->validate([
        'email' => 'required|string|email',
        'password' => 'required|string',
    ]);
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('authToken')->plainTextToken;
        return response()->json(['token' => $token], 200);
    } else {
        return response()->json(['message' => 'Invalid credentials'], 401);
    }
    }
  3. Защита маршрутов с помощью промежуточного программного обеспечения:

    Route::middleware('auth:sanctum')->group(function () {
    // Protected routes here
    });
  4. Выход пользователя:

    use Illuminate\Support\Facades\Auth;
    public function logout()
    {
    Auth::user()->tokens()->delete();
    return response()->json(['message' => 'Logged out'], 200);
    }