Skip to content

Commit

Permalink
Fixes losing of "access" or "refresh" tokens issue
Browse files Browse the repository at this point in the history
  • Loading branch information
marselester committed Sep 6, 2013
1 parent 7485ac3 commit dde2135
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions social_auth/db/base.py
Expand Up @@ -46,16 +46,21 @@ def revoke_token(self, drop_token=True):
self.save() self.save()


def refresh_token(self): def refresh_token(self):
data = self.extra_data refresh_token = self.extra_data.get('refresh_token')
if 'refresh_token' in data or 'access_token' in data: if refresh_token:
backend = self.get_backend() backend = self.get_backend()
if hasattr(backend, 'refresh_token'): if hasattr(backend, 'refresh_token'):
token = data.get('refresh_token') or data.get('access_token') response = backend.refresh_token(refresh_token)
response = backend.refresh_token(token) new_access_token = response.get('access_token')
self.extra_data.update( # We have not got a new access token, so don't lose the
backend.AUTH_BACKEND.extra_data(self.user, self.uid, # existing one.
response) if not new_access_token:
) return
self.extra_data['access_token'] = new_access_token
# New refresh token might be given.
new_refresh_token = response.get('refresh_token')
if new_refresh_token:
self.extra_data['refresh_token'] = new_refresh_token
self.save() self.save()


def expiration_datetime(self): def expiration_datetime(self):
Expand Down

0 comments on commit dde2135

Please sign in to comment.