Commit af5578e3 authored by Sharad Heft's avatar Sharad Heft

Create or update token object whenever a user logs in.

parent 50ef4696
...@@ -5,9 +5,12 @@ from django.conf import settings ...@@ -5,9 +5,12 @@ from django.conf import settings
from django.db import transaction from django.db import transaction
from test_oauth.models import TESTOAuth2Data
class TESTOAuth2Backend(ModelBackend): class TESTOAuth2Backend(ModelBackend):
def authenticate(self, id=None, username=None, **profile): def authenticate(self, token=None, id=None, username=None, **profile):
if id is None or username is None: if id is None or username is None or token is None:
return None return None
user, _ = get_user_model().objects.get_or_create( user, _ = get_user_model().objects.get_or_create(
...@@ -15,6 +18,14 @@ class TESTOAuth2Backend(ModelBackend): ...@@ -15,6 +18,14 @@ class TESTOAuth2Backend(ModelBackend):
username=username username=username
) )
data, _ = TESTOAuth2Data.objects.update_or_create(
user=user,
defaults={
'access_token': token['access_token'],
'refresh_token': token['refresh_token'],
}
)
if getattr(settings, 'TEST_OAUTH_CREATE_GROUPS', False): if getattr(settings, 'TEST_OAUTH_CREATE_GROUPS', False):
self._do_create_groups(user, profile.get('groups', [])) self._do_create_groups(user, profile.get('groups', []))
......
...@@ -31,6 +31,6 @@ def callback(request): ...@@ -31,6 +31,6 @@ def callback(request):
session = TESTOAuth2Session(token=token) session = TESTOAuth2Session(token=token)
auth.login(request, auth.authenticate(**session.profile)) auth.login(request, auth.authenticate(token=token, **session.profile))
return redirect(getattr(settings, 'TEST_OAUTH_REDIRECT', '/')) return redirect(getattr(settings, 'TEST_OAUTH_REDIRECT', '/'))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment