Commit af5578e3 authored by Sharad Heft's avatar Sharad Heft
Browse files

Create or update token object whenever a user logs in.

parent 50ef4696
......@@ -5,9 +5,12 @@ from django.conf import settings
from django.db import transaction
from test_oauth.models import TESTOAuth2Data
class TESTOAuth2Backend(ModelBackend):
def authenticate(self, id=None, username=None, **profile):
if id is None or username is None:
def authenticate(self, token=None, id=None, username=None, **profile):
if id is None or username is None or token is None:
return None
user, _ = get_user_model().objects.get_or_create(
......@@ -15,6 +18,14 @@ class TESTOAuth2Backend(ModelBackend):
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):
self._do_create_groups(user, profile.get('groups', []))
......
......@@ -31,6 +31,6 @@ def callback(request):
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', '/'))
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