diff --git a/apps/jumpserver/middleware.py b/apps/jumpserver/middleware.py index c0472d64f..775041b9d 100644 --- a/apps/jumpserver/middleware.py +++ b/apps/jumpserver/middleware.py @@ -57,7 +57,8 @@ class RequestMiddleware: def __call__(self, request): set_current_request(request) response = self.get_response(request) - if not settings.SESSION_EXPIRE_AT_BROWSER_CLOSE: + is_request_api = request.path.startswith('/api') + if not settings.SESSION_EXPIRE_AT_BROWSER_CLOSE and not is_request_api: age = request.session.get_expiry_age() request.session.set_expiry(age) return response diff --git a/apps/users/api/user.py b/apps/users/api/user.py index ba8e48b25..8f3ad6150 100644 --- a/apps/users/api/user.py +++ b/apps/users/api/user.py @@ -179,6 +179,11 @@ class UserProfileApi(generics.RetrieveAPIView): def get_object(self): return self.request.user + def retrieve(self, request, *args, **kwargs): + age = request.session.get_expiry_age() + request.session.set_expiry(age) + return super().retrieve(request, *args, **kwargs) + class UserResetOTPApi(generics.RetrieveAPIView): queryset = User.objects.all()