Я выполнил все инструкции, указанные в Django REST framework JWT. Но когда я использую свою пользовательскую модель для входа, она не работает.Django rest framework JWT, не возвращающий токен
settings.py
...
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
}
Пользовательские менеджер пользователей:
class UserManager(BaseUserManager):
def create_user(self, email, password=None, **kwargs):
if not email:
raise ValueError('Users must have a valid email address.')
user = self.model(
email=self.normalize_email(email), full_name=kwargs.get('full_name')
)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, **kwargs):
user = self.create_user(email, password, **kwargs)
user.is_admin = True
user.save()
return user
Вот мой views.py, который я использую для входа в систему:
class LoginView(views.APIView):
def post(self, request, format=None):
data = json.loads(request.body)
email = data.get('email', None)
password = data.get('password', None)
account = authenticate(email=email, password=password)
if account is not None:
if account.is_active:
login(request, account)
serialized = UserSerializer(account)
return Response(serialized.data)
else:
return Response({
'status': 'Unauthorized',
'message': 'This account has been disabled.'
}, status=status.HTTP_401_UNAUTHORIZED)
else:
return Response({
'status': 'Unauthorized',
'message': 'Username/password combination invalid.'
}, status=status.HTTP_401_UNAUTHORIZED)
Какая ошибка отображается вам? Что не работает? – jape
Нет ошибки. Все работает так, как будто он не настроен. –
Вы проверили установленные приложения? –