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);
} 잡기(오류: 모두) {
if (error.response) {
toast.error(error.response.data.message);
} else {
toast.error(error.message);
}
console.error("로그인 실패:", error);
} 드디어 {
setIsPending(false);
}
};
반품(
//나머지 코드
);
};
사용자 인증을 위해 이렇게 작성했습니다. 하지만 오류 요청이 중단되었습니다.
-> 자격 증명을 입력하고 백엔드로 보냈습니다.
-> 토큰이 생성 중이며 성공 메시지를 받습니다.
-> 그런 다음 앱 페이지로 리디렉션해야 합니다. 하지만 리디렉션하는 동안 요청이 중단됩니다.
이 문제를 해결하는 데 도움을 줄 수 있는 사람이 있나요
위 내용은 요청이 중단되었습니다(NS_BINDING_ABORT). Firefox에서는 작동하지만 나머지 브라우저에서는 작동합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!