feat: 完成用户鉴权相关api

This commit is contained in:
539943419 committed 2025-01-13 17:22:52 +08:00
1 parent 79cc9c34d6
commit 4c69f57aaa
22 files changed
+903 -68

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
import { defineEventHandler, readBody, createError } from 'h3';
import jwt from 'jsonwebtoken';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { token } = body;
const jwtSecret = getKey();
try {
// 验证旧的 Token
const decoded = jwt.verify(token, jwtSecret) as { userId: number };
// 生成新的 Token
const newToken = jwt.sign({ userId: decoded.userId }, jwtSecret, { expiresIn: '168h' });
return { token: newToken, expiresIn: Date.now() + 168 * 60 * 60 * 1000 };
} catch (err) {
throw createError({ statusCode: 401, statusMessage: 'Token invalid or expired', data: { err, token } });
}
});