46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
import { verifyToken, extractToken } from '../../utils/jwt.js'
|
|
import { getBlacklist } from '../../utils/ipBlacklist.js'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
try {
|
|
// 验证登录
|
|
const token = extractToken(event)
|
|
if (!token) {
|
|
throw createError({
|
|
statusCode: 401,
|
|
message: '请先登录'
|
|
})
|
|
}
|
|
|
|
const user = await verifyToken(token)
|
|
if (!user) {
|
|
throw createError({
|
|
statusCode: 401,
|
|
message: 'Token 无效或已过期'
|
|
})
|
|
}
|
|
|
|
// 获取查询参数
|
|
const query = getQuery(event)
|
|
const page = parseInt(query.page) || 1
|
|
const limit = parseInt(query.limit) || 20
|
|
|
|
// 获取黑名单列表
|
|
const result = await getBlacklist({ page, limit })
|
|
|
|
return {
|
|
success: true,
|
|
data: result
|
|
}
|
|
} catch (error) {
|
|
if (error.statusCode) {
|
|
throw error
|
|
}
|
|
|
|
console.error('[Blacklist] 获取黑名单列表失败:', error)
|
|
throw createError({
|
|
statusCode: 500,
|
|
message: '获取黑名单列表失败'
|
|
})
|
|
}
|
|
}) |