validate([ 'name' => 'required|string', 'email' => 'required|string|email|unique:users', 'password' => 'required|min:8' ]); $user = User::create([ 'name' => $registerUserData['name'], 'email' => $registerUserData['email'], 'password' => Hash::make($registerUserData['password']), ]); return response()->json([ 'message' => 'User Created ', ]); } public function login(Request $request): JsonResponse { $loginUserData = $request->validate([ 'email' => 'required|string|email', 'password' => 'required|min:8' ]); $user = User::where('email', $loginUserData['email'])->first(); if (!$user || !Hash::check($loginUserData['password'], $user->password)) { return response()->json([ 'message' => 'Invalid Credentials' ], 401); } $token = $user->createToken($user->name . '-AuthToken')->plainTextToken; return response()->json([ 'access_token' => $token, ]); } public function logout(): JsonResponse { auth()->user()->tokens()->delete(); return response()->json([ "message" => "logged out" ]); } }