feat: 切换为MariaDB数据库存储

This commit is contained in:
Cuishibing
2026-03-22 22:10:41 +08:00
parent a105f4aecb
commit fbd5f94a43
10 changed files with 346 additions and 299 deletions

View File

@@ -1,25 +1,8 @@
import { NextRequest, NextResponse } from 'next/server';
import fs from 'fs/promises';
import path from 'path';
const USERS_FILE = path.join(process.cwd(), 'data/users.json');
interface User {
id: string;
username: string;
token: string;
}
async function readUsers(): Promise<User[]> {
try {
const data = await fs.readFile(USERS_FILE, 'utf-8');
return JSON.parse(data);
} catch {
return [];
}
}
import pool from '@/lib/db';
export async function GET(request: NextRequest) {
let connection;
try {
const token = request.cookies.get('auth_token')?.value;
@@ -27,17 +10,20 @@ export async function GET(request: NextRequest) {
return NextResponse.json({ user: null });
}
const users = await readUsers();
const user = users.find(u => u.token === token);
connection = await pool.getConnection();
if (!user) {
const [rows] = await connection.query<any[]>('SELECT username FROM users WHERE token = ?', [token]);
if (rows.length === 0) {
return NextResponse.json({ user: null });
}
return NextResponse.json({ user: { username: user.username } });
return NextResponse.json({ user: { username: rows[0].username } });
} catch (error) {
console.error('Get user error:', error);
return NextResponse.json({ user: null });
} finally {
if (connection) connection.release();
}
}
@@ -45,4 +31,4 @@ export async function DELETE(request: NextRequest) {
const response = NextResponse.json({ success: true });
response.cookies.delete('auth_token');
return response;
}
}