Private
Public Access
1
0

strava auth seems to work

This commit is contained in:
Sander Roosendaal
2018-11-13 16:32:45 +01:00
parent f1d53db627
commit 04e06051cf
5 changed files with 76 additions and 11 deletions

View File

@@ -94,7 +94,7 @@ def imports_open(user,oauth_data):
tokenname = oauth_data['tokenname']
refreshtokenname = oauth_data['refreshtokenname']
expirydatename = oauth_data['expirydatename']
if tokenexpirydate and timezone.now()>tokenexpirydate:
if tokenexpirydate and timezone.now()+timedelta(seconds=3599)>tokenexpirydate:
token = imports_token_refresh(
user,
tokenname,
@@ -102,6 +102,15 @@ def imports_open(user,oauth_data):
expirydatename,
oauth_data,
)
elif tokenexpirydate is None and 'strava' in expirydatename:
token = imports_token_refresh(
user,
tokenname,
refreshtokenname,
expirydatename,
oauth_data,
)
return token
@@ -156,7 +165,11 @@ def imports_do_refresh_token(refreshtoken,oauth_data,access_token=''):
try:
expires_in = token_json['expires_in']
except KeyError:
expires_in = 0
try:
expires_at = arrow.get(token_json['expires_at']).timestamp
expires_in = expires_at - arrow.now().timestamp
except KeyError:
expires_in = 0
try:
refresh_token = token_json['refresh_token']
except KeyError:
@@ -266,6 +279,11 @@ def imports_token_refresh(user,tokenname,refreshtokenname,expirydatename,oauth_d
r = Rower.objects.get(user=user)
refreshtoken = getattr(r,refreshtokenname)
# for Strava transition
if not refreshtoken:
refreshtoken = getattr(r,tokenname)
res = imports_do_refresh_token(refreshtoken,oauth_data)
access_token = res[0]