// shared/lib/auth/handle-logout.ts — 登出工厂(步骤 1a 新增) // 清除 tlyq_session cookie → 返回 200 JSON import { NextResponse, type NextRequest } from 'next/server' interface HandleOidcLogoutConfig { cookieDomain: string } /** 登出:清除 tlyq_session 和 OIDC 临时 cookie → 返回 200 JSON */ export function handleOidcLogout(_req: NextRequest, config: HandleOidcLogoutConfig): NextResponse { const response = NextResponse.json({ success: true }) // 清除 tlyq_session response.cookies.set('tlyq_session', '', { httpOnly: true, secure: process.env.NODE_ENV === 'production', sameSite: 'lax' as const, domain: config.cookieDomain, path: '/', maxAge: 0, }) // 清除 OIDC 临时 cookie for (const name of ['oidc_code_verifier', 'oidc_state', 'oidc_nonce']) { response.cookies.set(name, '', { httpOnly: true, secure: process.env.NODE_ENV === 'production', sameSite: 'lax' as const, path: '/', maxAge: 0, }) } return response }