Skip to content

Commit 2e86188

Browse files
authored
chore: middleware 리다이렉트 조건 수정 (#180)
* chore: 리다이렉트 조건 구체화 및 runtime 옵션 제거 * chore: 설정 페이지 공통 컴포넌트 적용
1 parent 6d882de commit 2e86188

File tree

2 files changed

+4
-61
lines changed

2 files changed

+4
-61
lines changed

src/app/(protected)/my-page/setting/page.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Link from "next/link";
99
import { useRouter } from "next/navigation";
1010
import { useState } from "react";
1111

12+
import CustomBackHeader from "@/components/customBackHeader/CustomBackHeader";
1213
import ArrowLeft from "@public/icons/common/ArrowLeft.svg";
1314
import ExternalLink from "@public/icons/mypage/external-link.svg";
1415

@@ -98,14 +99,7 @@ export default function MyPage() {
9899
return (
99100
<div className="flex flex-col">
100101
{/* 헤더 부분 */}
101-
<div className="z-20 fixed top-0 w-[100vw] flex items-center justify-between px-5 py-[14px] bg-background-primary pt-[60px]">
102-
<Link href="/my-page">
103-
<Image src={ArrowLeft} alt="뒤로가기" width={24} height={24} />
104-
</Link>
105-
<div className="s2 mr-[18px] w-full text-center text-gray-normal">
106-
설정
107-
</div>
108-
</div>
102+
<CustomBackHeader title="설정" backRoute="/my-page" />
109103

110104
<div className="px-5 mt-[65px]">
111105
<div className="l5 text-gray-alternative">서비스 관리</div>

src/middleware.ts

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { type NextRequest, NextResponse } from "next/server";
22

3-
const REFRESH_ENDPOINT = "/v1/auth/token/refresh";
4-
53
export async function middleware(request: NextRequest) {
64
const path = request.nextUrl.pathname;
75
const accessToken = request.cookies.get("accessToken");
@@ -18,58 +16,11 @@ export async function middleware(request: NextRequest) {
1816
(openPath) => path === openPath || path.startsWith(`${openPath}/`),
1917
);
2018

21-
if (!isOpenPath && !refreshToken) {
19+
if (!isOpenPath && (!refreshToken || !refreshToken.value)) {
2220
return NextResponse.redirect(new URL("/login", request.url), 302);
2321
}
2422

25-
// if (!isOpenPath && !accessToken && refreshToken) {
26-
// const cookieStore = request.cookies;
27-
// const oldRefreshToken = cookieStore.get("refreshToken")?.value;
28-
29-
// const response = await fetch(
30-
// `${process.env.NEXT_PUBLIC_API_URL}${REFRESH_ENDPOINT}`,
31-
// {
32-
// method: "POST",
33-
// headers: { "Content-Type": "application/json" },
34-
// body: JSON.stringify({ refreshToken: oldRefreshToken }),
35-
// },
36-
// );
37-
38-
// if (!response.ok) {
39-
// const resp = NextResponse.redirect(new URL("/login", request.url), 307);
40-
// resp.cookies.delete("accessToken");
41-
// resp.cookies.delete("refreshToken");
42-
// return resp;
43-
// }
44-
45-
// const { accessToken, refreshToken: newRefreshToken } =
46-
// (await response.json()) as {
47-
// accessToken: string;
48-
// refreshToken: string;
49-
// };
50-
51-
// const nextResponse = NextResponse.next();
52-
53-
// nextResponse.cookies.set("accessToken", accessToken, {
54-
// httpOnly: true,
55-
// secure: true,
56-
// sameSite: "none",
57-
// path: "/",
58-
// maxAge: 60 * 60,
59-
// });
60-
61-
// nextResponse.cookies.set("refreshToken", newRefreshToken, {
62-
// httpOnly: true,
63-
// secure: true,
64-
// sameSite: "none",
65-
// path: "/",
66-
// maxAge: 60 * 60 * 24 * 7,
67-
// });
68-
69-
// return nextResponse;
70-
// }
71-
72-
if (isOpenPath && accessToken) {
23+
if (isOpenPath && accessToken && accessToken.value) {
7324
return NextResponse.redirect(new URL("/", request.url));
7425
}
7526

@@ -79,5 +30,3 @@ export async function middleware(request: NextRequest) {
7930
export const config = {
8031
matcher: ["/((?!api|_next/static|_next/image|favicon.ico|icons|public).*)"],
8132
};
82-
83-
export const runtime = "nodejs";

0 commit comments

Comments
 (0)