$request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); $token = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'message' => 'User registered successfully', 'user' => new UserResource($user), 'token' => $token, ], 201); } /** * Login user. */ public function login(LoginRequest $request): JsonResponse { $user = User::where('email', $request->email)->first(); if (!$user || !Hash::check($request->password, $user->password)) { return response()->json([ 'message' => 'Invalid credentials', ], 401); } $token = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'message' => 'Login successful', 'user' => new UserResource($user), 'token' => $token, ]); } /** * Logout user. */ public function logout(Request $request): JsonResponse { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Logged out successfully', ]); } /** * Get authenticated user. */ public function user(Request $request): JsonResponse { return response()->json([ 'user' => new UserResource($request->user()), ]); } }