- 更新 DashboardLayout 组件,统一使用演示模式布局 - 实现仪表盘页面的完整演示数据和功能 - 完成用户管理页面的演示模式,包含搜索、过滤、分页等功能 - 实现通话记录页面的演示数据和录音播放功能 - 完成翻译员管理页面的演示模式 - 实现订单管理页面的完整功能 - 完成发票管理页面的演示数据 - 更新文档管理页面 - 添加 utils.ts 工具函数库 - 完善 API 路由和数据库结构 - 修复各种 TypeScript 类型错误 - 统一界面风格和用户体验
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
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 : '未知错误'}`
|
|
: '服务器内部错误'
|
|
})
|
|
}
|
|
}
|