check()) { return response()->json([ 'error' => true, 'message' => 'Vui lòng đăng nhập để thực hiện!', 'code' => 401 ], 401); } // Token cấp trước lần đổi mật khẩu gần nhất → vô hiệu. // ponytail: token cũ chưa có claim `pv` vẫn được nhận cho tới khi hết JWT_TTL (chỉ lúc mới deploy) if ($checkGuard === 'client' && (int) Auth::guard('client')->user()->status !== 1) { return response()->json([ 'error' => true, 'message' => 'Tài khoản không còn hoạt động, vui lòng liên hệ hỗ trợ.', 'code' => 401 ], 401); } if ($checkGuard === 'client' && Auth::guard('client')->getToken()) { $pv = Auth::guard('client')->payload()->get('pv'); if ($pv !== null && !hash_equals(Auth::guard('client')->user()->passwordVersion(), (string) $pv)) { return response()->json([ 'error' => true, 'message' => 'Phiên đăng nhập đã hết hạn, vui lòng đăng nhập lại.', 'code' => 401 ], 401); } } // Ensure request user is set for the controller $request->setUserResolver(function () use ($checkGuard) { return Auth::guard($checkGuard)->user(); }); return $next($request); } }