Skip to content

Commit

Permalink
Merge pull request #330 from jlouder/fix-gc-login
Browse files Browse the repository at this point in the history
Simplieified Garmin Connect login flow
  • Loading branch information
cpfair committed May 13, 2017
2 parents 3829c8e + e85fe25 commit f483b78
Showing 1 changed file with 1 addition and 7 deletions.
8 changes: 1 addition & 7 deletions tapiriik/services/GarminConnect/garminconnect.py
Expand Up @@ -212,7 +212,6 @@ def _get_session(self, record=None, email=None, password=None, skip_cache=False)
preResp = session.get("https://sso.garmin.com/sso/login", params=params)
if preResp.status_code != 200:
raise APIException("SSO prestart error %s %s" % (preResp.status_code, preResp.text))
data["lt"] = re.search("name=\"lt\"\s+value=\"([^\"]+)\"", preResp.text).groups(1)[0]

ssoResp = session.post("https://sso.garmin.com/sso/login", params=params, data=data, allow_redirects=False)
if ssoResp.status_code != 200 or "temporarily unavailable" in ssoResp.text:
Expand All @@ -226,15 +225,10 @@ def _get_session(self, record=None, email=None, password=None, skip_cache=False)
if "renewPassword" in ssoResp.text:
raise APIException("Reset password", block=True, user_exception=UserException(UserExceptionType.RenewPassword, intervention_required=True))

ticket_match = re.search("ticket=([^']+)'", ssoResp.text)
if not ticket_match:
raise APIException("Invalid login (no ticket)", block=True, user_exception=UserException(UserExceptionType.Authorization, intervention_required=True))
ticket = ticket_match.groups(1)[0]

# ...AND WE'RE NOT DONE YET!

self._rate_limit()
gcRedeemResp = session.get("https://connect.garmin.com/post-auth/login", params={"ticket": ticket}, allow_redirects=False)
gcRedeemResp = session.get("https://connect.garmin.com/post-auth/login", allow_redirects=False)
if gcRedeemResp.status_code != 302:
raise APIException("GC redeem-start error %s %s" % (gcRedeemResp.status_code, gcRedeemResp.text))

Expand Down

0 comments on commit f483b78

Please sign in to comment.