add request log and operation log

This commit is contained in:
2026-03-17 15:54:23 +08:00
parent 8f69eb0349
commit f01e904878
@@ -6,7 +6,9 @@ namespace App\Controller\Api\V1;
use App\Controller\AbstractController; use App\Controller\AbstractController;
use App\Middleware\AuthMiddleware; use App\Middleware\AuthMiddleware;
use App\Middleware\RequestLogMiddleware;
use App\Model\User; use App\Model\User;
use App\Service\OperationLogService;
use Carbon\Carbon; use Carbon\Carbon;
use Hyperf\HttpServer\Annotation\Controller; use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\Middleware; use Hyperf\HttpServer\Annotation\Middleware;
@@ -252,6 +254,15 @@ class AuthController extends AbstractController
$user->refresh_token_expires_at = Carbon::now()->addDays(30); $user->refresh_token_expires_at = Carbon::now()->addDays(30);
$user->save(); $user->save();
OperationLogService::log(
user_id: $user->id,
action: 'auth.login',
target_type: 'user',
target_id: $user->id,
description: "用户 {$user->username} 登录",
ip: RequestLogMiddleware::getClientIp($request),
);
return [ return [
'code' => 0, 'code' => 0,
'message' => '登录成功', 'message' => '登录成功',
@@ -628,6 +639,15 @@ class AuthController extends AbstractController
$user->refresh_token_expires_at = null; $user->refresh_token_expires_at = null;
$user->save(); $user->save();
OperationLogService::log(
user_id: $user->id,
action: 'user.password_change',
target_type: 'user',
target_id: $user->id,
description: "用户 {$user->username} 修改密码",
ip: OperationLogService::getRequestIp(),
);
return [ return [
'code' => 0, 'code' => 0,
'message' => '密码修改成功,请重新登录', 'message' => '密码修改成功,请重新登录',
@@ -662,6 +682,15 @@ class AuthController extends AbstractController
$user = $auth->guard('jwt')->user(); $user = $auth->guard('jwt')->user();
if ($user instanceof User) { if ($user instanceof User) {
OperationLogService::log(
user_id: $user->id,
action: 'auth.logout',
target_type: 'user',
target_id: $user->id,
description: "用户 {$user->username} 退出登录",
ip: OperationLogService::getRequestIp(),
);
// 清除 refresh token // 清除 refresh token
$user->refresh_token = null; $user->refresh_token = null;
$user->refresh_token_expires_at = null; $user->refresh_token_expires_at = null;