diff --git a/backend/src/controllers/adminController.ts b/backend/src/controllers/adminController.ts index 465e93f..2d729ed 100644 --- a/backend/src/controllers/adminController.ts +++ b/backend/src/controllers/adminController.ts @@ -26,7 +26,7 @@ export const adminController = { action: 'ADMIN_LOGIN_FAILED', resource: 'ADMIN', details: JSON.stringify({ username, reason: '管理员不存在' }), - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null }); @@ -46,7 +46,7 @@ export const adminController = { action: 'ADMIN_LOGIN_FAILED', resource: 'ADMIN', details: JSON.stringify({ username, reason: '密码错误' }), - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null }); @@ -74,7 +74,7 @@ export const adminController = { action: 'ADMIN_LOGIN', resource: 'ADMIN', details: { username: admin.username }, - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null }); diff --git a/backend/src/controllers/authController.ts b/backend/src/controllers/authController.ts index 35784f1..f546d41 100644 --- a/backend/src/controllers/authController.ts +++ b/backend/src/controllers/authController.ts @@ -28,7 +28,7 @@ async function createSession(userId: string, token: string, req: Request) { data: { userId, token, - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, expiresAt: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), // 7 days }, @@ -85,7 +85,7 @@ export const authController = { action: 'USER_REGISTERED', resource: 'user', resourceId: user.id, - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); @@ -119,7 +119,7 @@ export const authController = { resource: 'user', resourceId: null, details: JSON.stringify({ username, reason: '用户不存在' }), - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); @@ -136,7 +136,7 @@ export const authController = { resource: 'user', resourceId: user.id, details: JSON.stringify({ username, reason: '账户已被禁用' }), - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); @@ -175,7 +175,7 @@ export const authController = { loginAttempts, isDisabled: userDisabled }), - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); @@ -222,7 +222,7 @@ export const authController = { action: 'USER_LOGIN', resource: 'user', resourceId: user.id, - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); @@ -257,7 +257,7 @@ export const authController = { action: 'USER_LOGOUT', resource: 'user', resourceId: req.user.id, - ipAddress: req.ip ?? null, + ipAddress: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress || null, userAgent: req.get('User-Agent') ?? null, } }); diff --git a/backend/src/index.ts b/backend/src/index.ts index 5472516..68d0556 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -48,7 +48,7 @@ app.use(express.urlencoded({ extended: true })); // Request logging app.use((req, res, next) => { logger.info(`${req.method} ${req.path}`, { - ip: req.ip, + ip: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress, userAgent: req.get('User-Agent') }); next(); diff --git a/backend/src/middleware/errorHandler.ts b/backend/src/middleware/errorHandler.ts index 0c02dd2..ff9ea52 100644 --- a/backend/src/middleware/errorHandler.ts +++ b/backend/src/middleware/errorHandler.ts @@ -29,7 +29,7 @@ export function errorHandler( stack: error.stack, url: req.url, method: req.method, - ip: req.ip, + ip: (req.headers['x-forwarded-for'] as string) || req.socket.remoteAddress, userAgent: req.get('User-Agent') });