cookie가 header에 들어있을 경우이며
body를 통해 전송하거나
GET을 전송할 경우에는 다른 로직 작성이 필요
import { NextResponse } from "next/server";
import jwt from "jsonwebtoken";
export async function POST(req: Request) {
try {
// 헤더에서 cookie 값 가져오기
const cookieHeader = req.headers.get("cookie");
if (!cookieHeader) {
return NextResponse.json({ error: "Cookie not found" }, { status: 401 });
}
// cookie에서 accessToken 추출
const token = cookieHeader
.split("; ")
.find((cookie) => cookie.startsWith("accessToken="))
?.split("=")[1];
if (!token) {
return NextResponse.json(
{ error: "accessToken not found" },
{ status: 401 }
);
}
// JWT 복호화 및 검증
const decoded = jwt.verify(token, process.env.JWT_SECRET as string);
return NextResponse.json({ data: decoded });
} catch (error) {
console.error("Error in POST handler:", error);
// 에러 발생 시에도 반드시 응답 반환
return NextResponse.json(
{ error: "Something went wrong" },
{ status: 500 }
);
}
}