validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|confirmed|min:6', ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); $token = $user->createToken('AppToken')->accessToken; return ApiResponse::success([ 'user' => $user, 'token' => $token, ], 'User registered successfully', 201); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (!Auth::attempt($credentials)) { return ApiResponse::error('Invalid credentials', 401); } $user = Auth::user(); $token = $user->createToken('AppToken')->accessToken; return ApiResponse::success([ 'user' => $user, 'token' => $token, ], 'Login successful'); } public function user(Request $request) { return ApiResponse::success($request->user()); } public function logout(Request $request) { $request->user()->token()->revoke(); return ApiResponse::success(null, 'Logged out successfully'); } }