validate([ 'email' => 'required|email', 'password' => 'required|string', ], [ 'email.required' => 'E-mail is verplicht', 'email.email' => 'E-mail moet een geldig e-mailadres zijn', 'password.required' => 'Wachtwoord is verplicht', ]); if (!Auth::attempt($validated)) { throw ValidationException::withMessages([ 'email' => ['De opgegeven gegevens zijn onjuist.'], ]); } $user = User::where('email', $validated['email'])->first(); $token = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'message' => 'Succesvol ingelogd', 'user' => $user, 'token' => $token, ]); } catch (ValidationException $e) { return response()->json([ 'message' => 'Validatie mislukt', 'errors' => $e->errors() ], 422); } catch (\Exception $e) { return response()->json([ 'message' => 'Inloggen mislukt', 'error' => $e->getMessage() ], 500); } } /** * Logout user and revoke token */ public function logout(Request $request): JsonResponse { try { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Succesvol uitgelogd' ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Uitloggen mislukt', 'error' => $e->getMessage() ], 500); } } /** * Get authenticated user */ public function user(Request $request): JsonResponse { try { return response()->json([ 'user' => $request->user() ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Gebruiker ophalen mislukt', 'error' => $e->getMessage() ], 500); } } }