From ec6146dd26772cb6267ed83b8784dbb1a9918154 Mon Sep 17 00:00:00 2001 From: mimizae Date: Sun, 16 Nov 2025 18:56:30 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20src=EC=97=90=20=EB=B9=88=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/record-detail/video-card.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/components/record-detail/video-card.tsx b/src/components/record-detail/video-card.tsx index 7f094b9..c53ec7e 100644 --- a/src/components/record-detail/video-card.tsx +++ b/src/components/record-detail/video-card.tsx @@ -7,6 +7,7 @@ interface VideoCardProps { } export default function VideoCard({ videoUrl, onDeleteClick }: VideoCardProps) { + console.log(videoUrl); const handleDownloadVideo = async () => { try { // S3 URL에서 영상 다운로드, 브라우저가 이 주소로 가서 파일을 다운로드 받는 것! @@ -61,11 +62,13 @@ export default function VideoCard({ videoUrl, onDeleteClick }: VideoCardProps) {
-
); From 7ca128ac47d8d0bbf4e6623ca202e09c1adbaa18 Mon Sep 17 00:00:00 2001 From: mimizae Date: Sun, 16 Nov 2025 19:09:19 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20?= =?UTF-8?q?=EC=B6=94=EC=B6=9C=20=EC=8B=9C=20=3F=20split=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/record-detail/video-card.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/record-detail/video-card.tsx b/src/components/record-detail/video-card.tsx index c53ec7e..f3de62e 100644 --- a/src/components/record-detail/video-card.tsx +++ b/src/components/record-detail/video-card.tsx @@ -22,7 +22,7 @@ export default function VideoCard({ videoUrl, onDeleteClick }: VideoCardProps) { link.href = blobUrl; // 파일명 추출 (URL에서) 또는 기본 파일명 사용 - const fileName = videoUrl.split("/").pop() || "video.mp4"; + const fileName = videoUrl.split("/").pop()?.split("?")[0] || "video.mp4"; link.download = fileName; // 다운로드 트리거 From 46e7523ed85a198e6d154d40103a48e2b2181144 Mon Sep 17 00:00:00 2001 From: mimizae Date: Mon, 17 Nov 2025 01:22:50 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EB=A6=AC=ED=94=84=EB=A0=88=EC=8B=9C?= =?UTF-8?q?=20=ED=86=A0=ED=81=B0=20=EC=A0=80=EC=9E=A5=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/api/auth/kakao/route.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/api/auth/kakao/route.ts b/src/app/api/auth/kakao/route.ts index 034b61f..d102a7a 100644 --- a/src/app/api/auth/kakao/route.ts +++ b/src/app/api/auth/kakao/route.ts @@ -26,18 +26,18 @@ export async function POST(req: NextRequest) { return NextResponse.json(data, { status: response.status }); } - const member = data.member; - const refreshToken = data; - const res = NextResponse.json({ member }); // 클라이언트가 받아서 zustand에 저장하도록 + const { member, refreshToken } = data; + + const res = NextResponse.json({ member }); // refreshToken을 httpOnly 쿠키에 저장 - if (refreshToken) { + if (refreshToken && typeof refreshToken === "string") { res.cookies.set("refreshToken", refreshToken, { httpOnly: true, secure: process.env.NODE_ENV === "production", sameSite: "strict", path: "/", - maxAge: 60 * 60 * 24 * 7, // 7일 -> 7일 지나면 재로그인 필요 + maxAge: 60 * 60 * 24 * 7, }); }