Programming/React
[ React ] JWT ํ ํฐ
seulye
2024. 8. 22. 08:44
1. ๋ก๊ทธ์ธ ํ ๋ ํ ํฐ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ
const onClickLogin = (event) => {
event.preventDefault();
axios
.post(`/api/comm/user/signin`, {
id: id,
password: pw,
})
.then((response) => {
console.log(response);
localStorage.clear();
localStorage.setItem("token", response.data.token);
navigate("/");
})
.catch((error) => {
console.log(error);
});
};
๋ฐฑ์๋์์ data์ id, token, verified๋ฅผ ๋ด์ ๋ณด๋ด์ฃผ๊ธฐ ๋๋ฌธ์, token์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํด์ค๋ค.
๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ๋ฉด ์ด๊ธฐํ๋ฉด์ผ๋ก ๋์๊ฐ๋ค.
token์ ์ ์ฅํด์ฃผ์์ผ๋, ์ด์ api ๋ ๋ฆด ๋ token ํ์ธํด์ค์ผํ๋ค.
2. token์ ์์ฒญ์ ํค๋์ ๋ด์์ ์ ๋ฌ
import axios from "axios";
const TOKEN = localStorage.getItem("token");
// axios ์ธ์คํด์ค ์์ฑ
const axiosServices = axios.create({
baseURL: "http://localhost:3000",
headers: {
"Content-Type": "application/json",
Authorization: `${TOKEN}`,
},
});
// ์์ฒญ ์ธํฐ์
ํฐ
axiosServices.interceptors.request.use(
(config) => {
// ํค๋์ ์์ธ์ค ํ ํฐ ๋ด๊ธฐ
const token = localStorage.getItem("token");
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
export default axiosServices;
https://klloo.github.io/react-login-jwt/
๋ฆฌ์กํธ์์ jwt ๊ธฐ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ
โฆ
klloo.github.io
3. ํธ์ถ
import axiosServices from "../../../utils/axios";
(์๋ต)
const onClickSearch = (event) => {
axiosServices
.get(`/api/stock/code/${stckNm}`)
.then((response) => {
setCodeList(response.data);
})
.catch((error) => {
console.log(error);
});
};
axios ํธ์ถํ๋๊ฑฐ๋ ๋๊ฐ์ด ํธ์ถํด์ฃผ๋ฉด ๋๋ค.