Skip to content

Commit 8f8e1c2

Browse files
committed
fix: 토큰 저장 로직 추가 (depromeet#167)
1 parent 4f22a51 commit 8f8e1c2

File tree

8 files changed

+27
-200
lines changed

8 files changed

+27
-200
lines changed

.github/pull-request-template.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/workflows/build-check.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

.github/workflows/github-actions.yml

Lines changed: 0 additions & 82 deletions
This file was deleted.

.gitignore

Lines changed: 0 additions & 41 deletions
This file was deleted.

.prettierrc

Lines changed: 0 additions & 10 deletions
This file was deleted.

.vscode/extensions.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

.vscode/settings.json

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/lib/serverKy.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { NextResponse } from "next/server";
55
const REFRESH_ENDPOINT = "/v1/auth/token/refresh";
66
const UNAUTHORIZED_CODE = 401;
77

8-
let refreshPromise: Promise<string> | null = null;
8+
let refreshPromise: Promise<{
9+
accessToken: string;
10+
refreshToken: string;
11+
}> | null = null;
912

1013
export const serverApi = ky.create({
1114
prefixUrl: process.env.NEXT_PUBLIC_API_URL,
@@ -70,13 +73,33 @@ export const serverApi = ky.create({
7073
maxAge: 60 * 60 * 24 * 7,
7174
});
7275

73-
return accessToken;
76+
return { accessToken, refreshToken: newRefreshToken };
7477
})();
7578
}
7679

7780
try {
78-
const newToken = await refreshPromise;
79-
request.headers.set("Authorization", `Bearer ${newToken}`);
81+
const { accessToken, refreshToken: newRefreshToken } =
82+
await refreshPromise;
83+
request.headers.set("Authorization", `Bearer ${accessToken}`);
84+
85+
// ! 이 코드가 의미가 있을까..?
86+
const cookieStore = await cookies();
87+
88+
cookieStore.set("accessToken", accessToken, {
89+
httpOnly: true,
90+
secure: true,
91+
sameSite: "none",
92+
path: "/",
93+
maxAge: 60 * 60,
94+
});
95+
cookieStore.set("refreshToken", newRefreshToken, {
96+
httpOnly: true,
97+
secure: true,
98+
sameSite: "none",
99+
path: "/",
100+
maxAge: 60 * 60 * 24 * 7,
101+
});
102+
80103
return serverApi(request, options);
81104
} catch (err) {
82105
return NextResponse.redirect(new URL("/login", request.url));

0 commit comments

Comments
 (0)