๋ผ์ฐํฐ์ testPage๋ testResultPage๋ฅผ ์ด๋ป๊ฒ ์ค์ผํ ๊น ์ฐพ์๋ณด๊ฒ ๋์๋ค.
์์ฒ๋ผ ์นด๋ฉ์ผ์ด์ค๋ก ์์ฑํด์ผํ๋๊ฑด๊ฐ? ์๋๋ฉด ์ผ๋ฐฅ์ผ์ด์ค? ์๋๋ฉด ์๋ฌธ์๋ก ์ญ?
// โ ํผํด์ผ ํ URL
/userProfile
/UserDetails
// โ
๊ถ์ฅํ๋ URL
/user-profile
/user-details
์ผ๋ฐฅ์ผ์ด์ค๋ก ๊ฒฐ์ !
axios๋ฅผ ์ฌ์ฉํ์ฌ Auth์ json server๊ด๋ จ baseUrl์ ์ค์ ํ์๋ค.
// ๊ธฐ๋ณธ URL ์ค์
const api = axios.create({
baseURL: "https://api.example.com"
});
// ๊ฐ์ ๊ฒฝ๋ก์ผ ๋๋ ๋น ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ
export const getTestResults = async () => {
const response = await api.get(""); // baseURL๋ง ์ฌ์ฉ
return response.data;
};
๋ก๊ทธ์ธ ๋ก์ง์ ์์ฑํ๋ค๊ฐ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค. ๊ธฐ๋ฅ์ ์ธ ๋ฌธ์ ๋ผ๊ธฐ ๋ณด๋จ ๋ณด์์ ์ผ๋ก password๋ฅผ ๊ฐ์ด ๋์ ธ์ฃผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์..
const handleLogin = async (formData) => {
try {
if(formData){
const data = await login(formData)
setToken(data.accessToken);
if(data.success){
navigate('/')
setUser(formData) // ๐ฑ ๋น๋ฐ๋ฒํธ ํฌํจ๋ formData ์ ์ฅ
}
}
} catch (error) {
console.error(error);
}
};
const handleLogin = async (formData) => {
try {
if (formData) {
const data = await login(formData);
if (data.success) {
setToken(data.accessToken);
setUser({ // ํ์ํ ์ ๋ณด๋ง ์ ํ์ ์ผ๋ก ์ ์ฅ
userId: data.userId,
nickname: data.nickname,
avatar: data.avatar
});
navigate('/');
}
}
} catch (error) {
console.error(error);
alert(`๋ก๊ทธ์ธ ์คํจ: ${error?.response?.data?.message || '์ ์ ์๋ ์ค๋ฅ'}`);
}
};
๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ์ค์ ํ๋ค๊ฐ.. token์ด set์ผ๋ก ์ค์ ๋์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค.
์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ ๋ด๊ฐ token์ ํจ์๋ก์ ์ฌ์ฉํ๊ณ ์์์๋ค.. localStorage๋ฅผ getItem์ผ๋ก ๋ฐ์ผ๋ฉด ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ง ์์๊น ์๊ฐํ๋๋ฐ.. set์ ์ฌ์ฉํ๋๊ฒ์ ๊ณ ๋ คํ๋ค๋ฉด ํจ์๋ก์ ์ฌ์ฉํ๋๊ฒ์ ์ง์ํด์ผํ๋ค.
// โ ์๋ชป๋ ๋ฐฉ์
token: () => {
try {
const item = window.localStorage.getItem("token")
return item ? JSON.parse(item) : null
} catch (error) {
console.error(error);
return null;
}
},
// โ
์ฌ๋ฐ๋ฅธ ๋ฐฉ์
const useAuthStore = create((set) => ({
token: null,
setToken: (token) => {
try {
window.localStorage.setItem("token", JSON.stringify(token));
set({ token });
} catch (error) {
console.error(error);
}
}
}));
// ์ปดํฌ๋ํธ์์ ์ด๊ธฐํ
useEffect(() => {
const storedToken = window.localStorage.getItem("token");
if(storedToken) {
setToken(JSON.parse(storedToken));
}
}, []);