validate([ 'username' => ['required'], 'password' => ['required'], ], [ 'username.required' => 'Username harus diisi.', 'password.required' => 'Password harus diisi.', ]); if (! Auth::guard()->attempt($validated)) { return response()->json([ 'success' => false, 'message' => 'Kredensial yang digunakan salah.', ]); } $user = Auth::user(); $user->tokens()->delete(); $token = $user->createToken('web')->plainTextToken; return response()->json([ 'success' => true, 'message' => 'Login berhasil.', 'data' => [ 'user' => $user->toResource(), 'token' => $token, ] ]); } /** * Logout */ public function logout(Request $request): JsonResponse { if ($request->user()?->currentAccessToken()) { $request->user()->currentAccessToken()->delete(); } return response()->json([ 'success' => true, 'message' => 'Logout berhasil.', ]); } /** * Display the authenticated user. */ public function me(Request $request): JsonResponse { return response()->json([ 'success' => true, 'data' => [ 'user' => $request->user()->toResource() ] ]); } }