diff --git a/rest_auth/app_settings.py b/rest_auth/app_settings.py index 96568aa..b1960eb 100644 --- a/rest_auth/app_settings.py +++ b/rest_auth/app_settings.py @@ -2,8 +2,10 @@ from django.conf import settings if getattr(settings, 'REST_AUTH_TOKEN_APP', False) is 'knox': from rest_auth.serializers import KnoxTokenSerializer as DefaultTokenSerializer + from .utils import create_knox_token as default_create_token else: from rest_auth.serializers import TokenSerializer as DefaultTokenSerializer + from .utils import default_create_token from rest_auth.serializers import ( JWTSerializer as DefaultJWTSerializer, @@ -12,7 +14,7 @@ from rest_auth.serializers import ( PasswordResetSerializer as DefaultPasswordResetSerializer, PasswordResetConfirmSerializer as DefaultPasswordResetConfirmSerializer, PasswordChangeSerializer as DefaultPasswordChangeSerializer) -from .utils import import_callable, default_create_token +from .utils import import_callable create_token = import_callable( getattr(settings, 'REST_AUTH_TOKEN_CREATOR', default_create_token)) diff --git a/rest_auth/utils.py b/rest_auth/utils.py index 800f184..14c351f 100644 --- a/rest_auth/utils.py +++ b/rest_auth/utils.py @@ -16,6 +16,11 @@ def default_create_token(token_model, user, serializer): return token +def create_knox_token(token_model, user, serializer): + token = token_model.objects.get_or_create(user=user) + return token + + def jwt_encode(user): try: from rest_framework_jwt.settings import api_settings