From 43196b588c553fcc335251d248434002caa0dab0 Mon Sep 17 00:00:00 2001 From: Matin Tamizi Date: Thu, 5 Oct 2023 10:00:13 -0400 Subject: [PATCH] Set domain on OAuth1 token (#25) * Add domain to OAuth1 token. Closes #24 * make sure mfa_expiration_timestamp is in the future * bump version --- garth/auth_tokens.py | 1 + garth/http.py | 5 ++++- garth/sso.py | 2 +- garth/version.py | 2 +- tests/conftest.py | 3 ++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/garth/auth_tokens.py b/garth/auth_tokens.py index 465ad6c..ce24735 100644 --- a/garth/auth_tokens.py +++ b/garth/auth_tokens.py @@ -11,6 +11,7 @@ class OAuth1Token: oauth_token_secret: str mfa_token: Optional[str] = None mfa_expiration_timestamp: Optional[datetime] = None + domain: Optional[str] = None @dataclass diff --git a/garth/http.py b/garth/http.py index c2b3f23..fc3f9d9 100644 --- a/garth/http.py +++ b/garth/http.py @@ -201,13 +201,16 @@ def load(self, dir_path: str): oauth1 = OAuth1Token(**json.load(f)) with open(os.path.join(dir_path, "oauth2_token.json")) as f: oauth2 = OAuth2Token(**json.load(f)) - self.configure(oauth1_token=oauth1, oauth2_token=oauth2) + self.configure( + oauth1_token=oauth1, oauth2_token=oauth2, domain=oauth1.domain + ) def loads(self, s: str): oauth1, oauth2 = json.loads(base64.b64decode(s)) self.configure( oauth1_token=OAuth1Token(**oauth1), oauth2_token=OAuth2Token(**oauth2), + domain=oauth1.get("domain"), ) diff --git a/garth/sso.py b/garth/sso.py index aba1357..cf7eb54 100644 --- a/garth/sso.py +++ b/garth/sso.py @@ -120,7 +120,7 @@ def get_oauth1_token(ticket: str, client: "http.Client") -> OAuth1Token: resp.raise_for_status() parsed = parse_qs(resp.text) token = {k: v[0] for k, v in parsed.items()} - return OAuth1Token(**token) # type: ignore + return OAuth1Token(domain=client.domain, **token) # type: ignore def exchange(oauth1: OAuth1Token, client: "http.Client") -> OAuth2Token: diff --git a/garth/version.py b/garth/version.py index 89c1233..7642353 100644 --- a/garth/version.py +++ b/garth/version.py @@ -1 +1 @@ -__version__ = "0.4.37" +__version__ = "0.4.38" diff --git a/tests/conftest.py b/tests/conftest.py index 8e8554c..0e6ad9b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -26,7 +26,8 @@ def oauth1_token_dict() -> dict: oauth_token="7fdff19aa9d64dda83e9d7858473aed1", oauth_token_secret="49919d7c4c8241ac93fb4345886fbcea", mfa_token="ab316f8640f3491f999f3298f3d6f1bb", - mfa_expiration_timestamp="2023-08-02 05:56:10.000", + mfa_expiration_timestamp="2024-08-02 05:56:10.000", + domain="garmin.com", )