修复登录bug
This commit is contained in:
@@ -239,7 +239,7 @@ export const authController = {
|
||||
},
|
||||
|
||||
// 用户登出
|
||||
async logout(req: AuthRequest, res: Response) {
|
||||
async logout(req: Request, res: Response) {
|
||||
const token = req.headers.authorization?.substring(7);
|
||||
|
||||
if (token) {
|
||||
@@ -249,18 +249,26 @@ export const authController = {
|
||||
});
|
||||
}
|
||||
|
||||
// Create audit log
|
||||
if (req.user) {
|
||||
await prisma.auditLog.create({
|
||||
data: {
|
||||
userId: req.user.id,
|
||||
action: 'USER_LOGOUT',
|
||||
resource: 'user',
|
||||
resourceId: req.user.id,
|
||||
ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null,
|
||||
userAgent: req.get('User-Agent') ?? null,
|
||||
// Create audit log (if we have user info from token)
|
||||
try {
|
||||
if (token) {
|
||||
const decoded = jwt.verify(token, "pandora") as any;
|
||||
if (decoded && decoded.userId) {
|
||||
await prisma.auditLog.create({
|
||||
data: {
|
||||
userId: decoded.userId,
|
||||
action: 'USER_LOGOUT',
|
||||
resource: 'user',
|
||||
resourceId: decoded.userId,
|
||||
ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null,
|
||||
userAgent: req.get('User-Agent') ?? null,
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
// Token无效,不记录审计日志
|
||||
console.log('登出时token无效,跳过审计日志记录');
|
||||
}
|
||||
|
||||
res.json({ message: '登出成功' });
|
||||
|
||||
Reference in New Issue
Block a user