Commit 77a9f8d6 authored by Ondřej Borýsek's avatar Ondřej Borýsek
Browse files

Fix re-auth

parent 1a1ac117
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -18,13 +18,19 @@ from helpers.file_utils import *


class PwnDocAuth(AuthBase):

    @staticmethod
    def _replace_cookies_with_session_cookies(r: requests.PreparedRequest):
        r.headers.pop('Cookie', None)  # If the request already has a header Cookie than prepare_cookies will not overwrite it.
        r.prepare_cookies(session.cookies)  # Updating cookies on session does not automatically update cookies on prepared request.

    def __call__(self, r):
        if r.path_url.startswith('/api/users'):
            return r

        if session.cookies.get('token') is None:
            _login()
            r.prepare_cookies(session.cookies)  # Updating cookies on session does not automatically update cookies on prepared request.
            self._replace_cookies_with_session_cookies(r)
            return r

        jwt_token = session.cookies.get('token', "").replace("JWT%20", "")
@@ -32,12 +38,12 @@ class PwnDocAuth(AuthBase):
        exp_timestamp = jwt_data.get("exp")

        remaining_seconds = exp_timestamp - current_timestamp()
        if remaining_seconds < 60:  # 60 seconds as a safe space
        if remaining_seconds < 60:  # 60 seconds as a safety margin
            try:
                _refresh_token()
            except AssertionError:
                _login()
            r.prepare_cookies(session.cookies)  # Updating cookies on session does not automatically update cookies on prepared request.
            self._replace_cookies_with_session_cookies(r)

        return r