[英]How to check if token is undefined for user authentication
如果輸入正確的密碼,我可以登錄用戶,但是當我輸入錯誤的密碼時,它顯示“access_token”未定義。
這是我的 useToken.js 文件
import { useState } from "react";
export default function useToken() {
const getToken = () => {
const tokenString = sessionStorage.getItem("access_token");
const userToken = JSON.parse(tokenString);
return userToken?.access_token;
};
const [token, setToken] = useState(getToken());
const saveToken = userToken => {
sessionStorage.setItem('access_token', JSON.stringify(userToken.data));
setToken(userToken.data.access_token);
};
return {
setToken: saveToken,
token
}
}
這是在我的 Login.js 文件中處理這個提交
const handleSubmit = async e => {
e.preventDefault();
const token = await loginUser({
email,
password
});
setToken(token);
}
最后在我的 App.js 文件中,我通過以下方式顯示登錄頁面:
if (!token) {
return <Login setToken={setToken} />
}
如果他們輸入錯誤的密碼或用戶名重定向到登錄頁面,我如何檢查未定義。
首先,看看這個答案。 一旦設法為 isUndefined 編寫邏輯,就將其嵌入一個三元運算符,例如:
{ isUndefined ?
// do these if true
:
// do these if false
}
錯誤是“cannot read access_token of undefined”,這意味着 userToken.data 是未定義的。 這很可能是因為密碼錯誤。 使用以下。
userToken?.data?.access_token
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.