diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 95542d8..25f6cf0 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -45,6 +45,7 @@ class Kernel extends HttpKernel \App\Http\Middleware\ApiResponseMiddleware::class, \App\Http\Middleware\LanguageSwitcher::class, \App\Http\Middleware\CheckPermission::class,//用户权限中间件 + \App\Http\Middleware\CheckSessionTimeout::class,//用户登录状态自动失效 ], ]; diff --git a/app/Http/Middleware/CheckSessionTimeout.php b/app/Http/Middleware/CheckSessionTimeout.php new file mode 100644 index 0000000..5d16537 --- /dev/null +++ b/app/Http/Middleware/CheckSessionTimeout.php @@ -0,0 +1,36 @@ +check()) { + if (session()->has('last_activity')) { + $expire_period = 30 * 60; // 30 minutes in seconds + if (time() - session('last_activity') > $expire_period) { + $user = Auth::guard('sanctum')->user(); + $user->tokens()->delete(); + return (new ApiResponseService())->error( + __('middleware.check.login_invalid'), + 400 + ); + } + } + session(['last_activity' => time()]); // 更新最后活动时间 + } + return $next($request); + } +}