Skip to content

Commit 06bab5c

Browse files
authored
✨feat:token을 localStorage에서 관리 (#576)
1 parent 5e8d8cb commit 06bab5c

File tree

7 files changed

+11
-11
lines changed

7 files changed

+11
-11
lines changed

src/api/apis/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const axiosInstance = axios.create({
1010

1111
axiosInstance.interceptors.request.use(
1212
(config) => {
13-
const token = sessionStorage.getItem('token');
13+
const token = localStorage.getItem('token');
1414
if (token) {
1515
config.headers.Authorization = token;
1616
}

src/components/route/ProtectedRoute.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const ProtectedRoute = ({ children }: PropsWithChildren) => {
1010
const [hasBasicInfo, setHasBasicInfo] = useState<boolean | null>(null);
1111
const location = useLocation();
1212
const loginType = useLoginStore((state) => state.loginType);
13-
const token = sessionStorage.getItem('token');
13+
const token = localStorage.getItem('token');
1414

1515
useEffect(() => {
1616
let isMounted = true; // 컴포넌트 언마운트 체크
@@ -29,7 +29,7 @@ const ProtectedRoute = ({ children }: PropsWithChildren) => {
2929
if (isMounted) {
3030
// 토큰 만료 체크
3131
if (axiosError.response?.status === 401 || axiosError.response?.status === 403) {
32-
sessionStorage.removeItem('token');
32+
localStorage.removeItem('token');
3333
// 로그인 리다이렉트 로직 필요하면 추가하기
3434
}
3535
console.error('상세정보 확인 실패:', error);

src/layout/header/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export default function Header() {
6464
let eventSource: EventSourcePolyfill;
6565

6666
const connectSSE = () => {
67-
const token = sessionStorage.getItem('token');
67+
const token = localStorage.getItem('token');
6868
eventSource = new EventSourcePolyfill(`${import.meta.env.VITE_APP_BASE_URL}/api/sse/subscribe`, {
6969
headers: {
7070
Authorization: `${token}`

src/pages/login-page/logic/useLogin.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ export const useLogin = (): useReturn => {
4545
if (idErr !== '' || pwdErr !== '') throw new Error('id와 pwd 형식을 확인해주세요.');
4646
else {
4747
try {
48-
//현재 -> 토큰을 그대로 받아서 session에 넣고 사용
49-
//나중 -> 쿠키에 단기토큰 넣고 그거로 token을 가져오는 api호출 후, session에 넣고 사용
48+
//현재 -> 토큰을 그대로 받아서 local에 넣고 사용
49+
//나중 -> 쿠키에 단기토큰 넣고 그거로 token을 가져오는 api호출 후, local에 넣고 사용
5050
const response = await handleLogin(id, pwd);
5151
const token = response.headers['authorization'];
5252

5353
//token을 세션스토리지에 저장
54-
sessionStorage.setItem('token', token);
54+
localStorage.setItem('token', token);
5555
navigate('/success');
5656
} catch (error) {
5757
console.error('Login failed:', error);

src/pages/main-page/MainPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import axiosInstance from '@/api/apis';
1111
import useInterestStore from '@/store/stores/interest-center/interestStore';
1212

1313
export default function MainPage() {
14-
const token = sessionStorage.getItem('token');
14+
const token = localStorage.getItem('token');
1515

1616
const loginType = useLoginStore((state) => state.loginType);
1717
const setLoginInfo = useLoginStore((state) => state.setLoginInfo);

src/pages/success-page/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useEffect } from 'react';
44
import { useNavigate } from 'react-router';
55

66
const SuccessPage = () => {
7-
const token = sessionStorage.getItem('token');
7+
const token = localStorage.getItem('token');
88

99
const loginType = useLoginStore((state) => state.loginType);
1010
const setLoginInfo = useLoginStore((state) => state.setLoginInfo);
@@ -13,7 +13,7 @@ const SuccessPage = () => {
1313
const navigate = useNavigate();
1414

1515
//단기토큰 받는거로 바뀌면, 해당 단기토큰으로 ACCESS토큰 받아오는 useEffect하나 더 필요 (쿠키에서 꺼내서 보내는거로)
16-
//로그인 로직에서는 session에 저장하는 것 삭제하고, 여기서 ACCESS받아서 session에 저장하도록 해야함.
16+
//로그인 로직에서는 local에 저장하는 것 삭제하고, 여기서 ACCESS받아서 local에 저장하도록 해야함.
1717

1818
///////////////////////////////
1919
//토큰을 해석해서 zustand에 저장

src/store/stores/login/loginStore.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const useLoginStore = create(
2626
isLoggedIn: true
2727
})),
2828
clearLoginInfo: () => {
29-
sessionStorage.removeItem('token');
29+
localStorage.removeItem('token');
3030
window.history.replaceState({}, document.title);
3131
set((state) => ({
3232
...state,

0 commit comments

Comments
 (0)