const 로그인 = () => {
const { isAuthenticated } = useSelector(
(rootState: RootState) => 루트스테이트.인증
);
const router = useRouter();
const 디스패치 = useDispatch();
const searchParams = useSearchParams();
const [isLoading, setIsLoading] = useState(false);
const [passwordVisible, setPasswordVisible] = useState(false);
constgglePasswordVisibility = () => {
setPasswordVisible(!passwordVisible);
};
const ValidationSchema = z.object({
이메일: z.string().email("유효한 이메일 주소를 입력하세요."),
비밀번호: z
.string()
.min(8, "비밀번호는 8자 이상이어야 합니다.")
.max(20, "비밀번호는 20자를 초과할 수 없습니다."),
Remember_me: z.boolean().Optional().default(false),
});
const [isPending, setIsPending] = useState(false);
유형 ValidationSchemaType = z.infer;
useEffect(() => {
if (isAuthenticated) {
router.push("/app");
}
}, [인증됨]);
const {
시청하세요
setValue,
등록하세요,
핸들제출,
formState: { 오류 },
} = useForm({
리졸버: zodResolver(ValidationSchema),
});
const handlerGetProfileData = async () => {
시도해 보세요. {
const 응답 = axios.get(${API_URL}/users/api/v1)을 기다리고 있습니다.
const userData = response?.data?.data;
userData 반환;
} 잡기(오류) {
console.log(오류);
}
};
const onSubmit: SubmitHandler = 비동기 데이터 => {
setIsPending(true);
시도해 보세요. {
const validedData = ValidationSchema.parse(data);
const 응답 = axios.post를 기다립니다(
API_URL "/users/api/v1/auth/login",
검증된 데이터
);
const expiryTime = watch("remember_me")
? 30*24*60*60*1000
: 7 * 24 * 60 * 60 * 1000;
setCookie("token", response.data.data.token, {
보안: 참,
sameSite: "없음",
만료: new Date(Date.now() expiryTime),
// 도메인: process.env.NEXT_PUBLIC_APP_BASE_URL,
});
const userData = handlerGetProfileData()를 기다립니다.
디스패치(login(userData));
router.push("/app");
toast.success(response.data.message);
} catch (エラー: 任意) {
if (error.response) {
トースト.error(error.response.data.message);
} else {
トースト.エラー(エラー.メッセージ);
}
console.error("ログインに失敗しました:", エラー);
} 最後に {
setIsPending(false);
}
};
return(
//コードの残りの部分
);
};
ユーザー認証についてはこのように書きました。しかし、エラーリクエストが中止されます。
->資格情報を入力し、バックエンドに送信しました。
->トークンが生成され、成功メッセージが表示されます。
->その後、アプリページにリダイレクトする必要があります。しかし、リダイレクト中にリクエストは中止されます。
この問題を解決するために誰か手伝ってくれませんか
以上がリクエストが中止されました (NS_BINDING_ABORT) Firefox では動作しますが、残りのブラウザでは動作しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。