47 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

import type { NextApiRequest, NextApiResponse } from 'next'
import { supabase } from '../../../lib/supabase'
interface ApiResponse {
success: boolean
message?: string
error?: string
}
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<ApiResponse>
) {
if (req.method !== 'POST') {
return res.status(405).json({
success: false,
error: '方法不允许'
})
}
try {
// 从Supabase登出
const { error } = await supabase.auth.signOut()
if (error) {
console.error('Logout error:', error)
return res.status(400).json({
success: false,
error: error.message || '登出失败'
})
}
return res.status(200).json({
success: true,
message: '登出成功'
})
} catch (error) {
console.error('Server error during logout:', error)
return res.status(500).json({
success: false,
error: process.env.NODE_ENV === 'development'
? `服务器错误: ${error instanceof Error ? error.message : '未知错误'}`
: '服务器内部错误'
})
}
}