Skip to content

Commit 9e37071

Browse files
committed
feat: 로그인 로그아웃 유틸리티 함수 구현
1 parent 51ad049 commit 9e37071

File tree

5 files changed

+27
-11
lines changed

5 files changed

+27
-11
lines changed

api/axios.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ const instance = axios.create({
99
},
1010
});
1111

12-
export const setInstanceHeaders = (token: string) => {
12+
export const setInstanceHeaders = (token?: string) => {
13+
const value = token ? `Bearer ${token}` : undefined;
1314
instance.interceptors.request.use((config) => {
14-
config.headers["Authorization"] = `Bearer ${token}`;
15+
config.headers["Authorization"] = value;
1516
return config;
1617
});
1718
};

lib/setLogIn.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { AuthResponse } from "@/api/auth.api";
2+
import { setInstanceHeaders } from "@/api/axios";
3+
4+
export default function setLogIn(userData: AuthResponse) {
5+
const { user, accessToken, refreshToken } = userData;
6+
sessionStorage.setItem("user", JSON.stringify(user));
7+
sessionStorage.setItem("accessToken", accessToken);
8+
sessionStorage.setItem("refreshToken", refreshToken);
9+
sessionStorage.setItem("birth", new Date().toISOString());
10+
setInstanceHeaders(accessToken);
11+
}

lib/setLogOut.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { setInstanceHeaders } from "@/api/axios";
2+
3+
export default function setLogOut() {
4+
sessionStorage.removeItem("user");
5+
sessionStorage.removeItem("accessToken");
6+
sessionStorage.removeItem("refreshToken");
7+
sessionStorage.removeItem("birth");
8+
setInstanceHeaders();
9+
}

pages/signin.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { postSignIn, SignInParams } from "@/api/auth.api";
22
import { setInstanceHeaders } from "@/api/axios";
33
import useAsync from "@/hooks/useAsync";
4+
import setLogIn from "@/lib/setLogIn";
45
import styles from "@/styles/login.module.css";
56
import Image from "next/image";
67
import Link from "next/link";
@@ -51,11 +52,7 @@ export default function SignIn() {
5152

5253
const response = await postSignInAsync(values);
5354
if (response) {
54-
sessionStorage.setItem("user", JSON.stringify(response.user));
55-
sessionStorage.setItem("accessToken", response.accessToken);
56-
sessionStorage.setItem("refreshToken", response.refreshToken);
57-
setInstanceHeaders(response.accessToken);
58-
55+
setLogIn(response);
5956
router.push("/");
6057
} else alert("회원가입에 실패했습니다.");
6158
};

pages/signup.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { postSignUp, SignUpParams } from "@/api/auth.api";
22
import { setInstanceHeaders } from "@/api/axios";
33
import useAsync from "@/hooks/useAsync";
4+
import setLogIn from "@/lib/setLogIn";
45
import styles from "@/styles/login.module.css";
56
import Image from "next/image";
67
import Link from "next/link";
@@ -68,10 +69,7 @@ export default function SignUp() {
6869
}
6970
const response = await postSignUpAsync(values);
7071
if (response) {
71-
sessionStorage.setItem("user", JSON.stringify(response.user));
72-
sessionStorage.setItem("accessToken", response.accessToken);
73-
sessionStorage.setItem("refreshToken", response.refreshToken);
74-
setInstanceHeaders(response.accessToken);
72+
setLogIn(response);
7573
router.push("/");
7674
} else alert("회원가입에 실패했습니다.");
7775
};

0 commit comments

Comments
 (0)