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 response()->json([ 'success' => true, 'data' => [ 'user' => $user, 'token' => $token, ] ]); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (!Auth::attempt($credentials)) { return response()->json([ 'success' => false, 'message' => 'Invalid credentials' ], 401); } $user = Auth::user(); $token = $user->createToken('AppToken')->accessToken; return response()->json([ 'success' => true, 'data' => [ 'user' => $user, 'token' => $token, ] ]); } public function user(Request $request) { return response()->json([ 'success' => true, 'data' => $request->user() ]); } public function logout(Request $request) { $request->user()->token()->revoke(); return response()->json([ 'success' => true, 'message' => 'Logged out' ]); } }