17 lines
734 B
TypeScript
17 lines
734 B
TypeScript
import { NextResponse } from 'next/server'
|
||
import { cookies } from 'next/headers'
|
||
|
||
export async function POST() {
|
||
const cookieStore = await cookies()
|
||
const domain = process.env.COOKIE_DOMAIN || ''
|
||
|
||
// 清除所有相关 cookie(必须指定 domain 以清除跨域 cookie)
|
||
cookieStore.set('tlyq_session', '', { maxAge: 0, path: '/', domain })
|
||
cookieStore.set('session', '', { maxAge: 0, path: '/', domain })
|
||
cookieStore.set('oidc_id_token', '', { maxAge: 0, path: '/', domain })
|
||
|
||
// Authelia 4.38 不支持 end_session_endpoint,直接跳转登录页
|
||
// Authelia session 会在 cookie 过期后自动清除
|
||
return NextResponse.redirect(new URL('/login', process.env.NEXT_PUBLIC_URL || 'http://127.0.0.1:6179'))
|
||
}
|