monitor-ai/src/app/api/auth/logout/route.ts

22 lines
1.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// GET + POST /api/auth/logout — 退出登录(清除 cookie + 302 跳转 /login
import { NextResponse, type NextRequest } from 'next/server'
const cookieDomain = process.env.COOKIE_DOMAIN || '.tlyq.ai'
/** 清除 tlyq_session + session cookie → 302 跳转 /login */
function logoutResponse(request: NextRequest): NextResponse {
const host = request.headers.get('x-forwarded-host') || request.headers.get('host') || 'localhost'
const proto = request.headers.get('x-forwarded-proto') || 'https'
const baseUrl = `${proto}://${host}`
const response = NextResponse.redirect(new URL('/login', baseUrl))
response.cookies.set('tlyq_session', '', {
httpOnly: true, secure: process.env.NODE_ENV === 'production',
sameSite: 'lax', domain: cookieDomain, path: '/', maxAge: 0,
})
response.cookies.set('session', '', { path: '/', maxAge: 0 })
return response
}
export async function GET(request: NextRequest) { return logoutResponse(request) }
export async function POST(request: NextRequest) { return logoutResponse(request) }