如果登錄成功,如何從登錄頁面重定向?我正在使用 HTTPOnly Cookie 進行用戶身份驗證。如果用戶使用他們的憑據登錄,我可以使用下面的代碼重定向到主頁。然而,如果用戶輸入了錯誤的用戶名或密碼,頁面會導航到主頁但用戶未登錄。如何僅在憑據正確時進行頁面導航,并避免在憑據不正確時導航到主頁?
登錄.jsx
function Login({ onUpdateUser }) {
const [formData, setFormData] = useState({
username: "",
password: "",
});
const navigate = useNavigate();
function handleChange(e) {
setFormData({ ...formData, [e.target.name]: e.target.value });
}
function handleSubmit(e) {
e.preventDefault();
fetch("http://localhost:3000/api/v1/login", {
method: "POST",
credentials: "include",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
})
.then((r) => {
if (!r.ok) throw Error("Incorrect username or password!")
.then(navigate('/login'))
})
.then((user) => onUpdateUser(user))
.then(navigate('/'))
}
uj5u.com熱心網友回復:
if condition
參與.then
似乎很可疑。
我認為它應該像
.then((r) => {
if (!r.ok){
throw Error("Incorrect username or password!")
}else{
// username and email are true and accepted so navigate to "/"
navigate('/')
}
})
.then((user) => onUpdateUser(user))
uj5u.com熱心網友回復:
您的使用promise... then...
似乎不正確。
.then(navigate('/login'))
應該
.then(()=> navigate('/login'))
uj5u.com熱心網友回復:
我想你可以試試這個
.then(()=> navigate('Home'))
代替
.then(navigate('/login'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/505670.html
標籤:反应 验证 重定向 导航 cookie-httponly