Files
Henry_Du 4ce4649aaf
Build VoiceHub FPK / build-fpk (push) Failing after 56m5s
Build and Push Docker Image / build-and-push (push) Canceled after 1h9m35s
初次提交
2026-09-06 08:19:02 +08:00

58 lines
1.4 KiB
TypeScript

export default defineEventHandler(async (event) => {
try {
console.log('[Auth] User logout requested')
// 获取当前用户信息(如果存在)
const user = event.context.user
// 清除用户认证缓存
if (user) {
try {
const { cache } = await import('~~/server/utils/cache-helpers')
await cache.delete(`auth:user:${user.id}`)
console.log(`[Cache] 用户认证缓存已清除(用户登出): ${user.id}`)
} catch (cacheError) {
console.warn('[Cache] 清除用户认证缓存失败:', cacheError)
}
}
// 清除cookie
const isSecure =
getRequestURL(event).protocol === 'https:' ||
getRequestHeader(event, 'x-forwarded-proto') === 'https'
setCookie(event, 'auth-token', '', {
httpOnly: true,
secure: isSecure,
sameSite: 'lax',
maxAge: 0,
path: '/'
})
return {
success: true,
message: '登出成功'
}
} catch (error: any) {
console.error('Logout error:', error)
// 出错时也要清除cookie
try {
setCookie(event, 'auth-token', '', {
httpOnly: true,
secure: false,
sameSite: 'lax',
maxAge: 0,
path: '/'
})
} catch (cookieError) {
console.error('Failed to clear cookie:', cookieError)
}
// 返回成功状态
return {
success: true,
message: '登出成功'
}
}
})