feat: 로그아웃 기능 추가

This commit is contained in:
2025-06-30 16:55:34 +09:00
parent f915f8ab4b
commit 2ee413e077
2 changed files with 30 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
import { cookies } from "next/headers";
import { NextResponse } from "next/server";
import {
ACCESS_TOKEN,
AUTH_USER_ID,
CLAIM_NAME,
REFRESH_TOKEN,
} from "@/shared/config";
export async function POST() {
const cookieStore = await cookies();
cookieStore.delete(ACCESS_TOKEN);
cookieStore.delete(REFRESH_TOKEN);
cookieStore.delete(AUTH_USER_ID);
cookieStore.delete(CLAIM_NAME);
return NextResponse.json({ message: "Logged out" }, { status: 200 });
}
@@ -52,6 +52,18 @@ export function Header({ viewOnly }: { viewOnly?: boolean }) {
queryFn: () => getUserPopupList(),
});
const logout = async () => {
try {
const response = await fetch("/api/auth/logout", {
method: "POST",
});
if (!response.ok) throw new Error("Failed to logout");
window.location.href = "/auth/login";
} catch (error) {
console.error(error);
}
};
const openPopup = useCallback(async (popup: Popup) => {
try {
const cookieName = `cs-popup-hide-for-day-${popup.popupSn}`;
@@ -139,7 +151,7 @@ export function Header({ viewOnly }: { viewOnly?: boolean }) {
<p className="text-base text-label">접속 IP</p>
<p></p>
</div>
<DropdownMenuItem>로그아웃</DropdownMenuItem>
<DropdownMenuItem onClick={logout}>로그아웃</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</header>