Регистрация пользователей наряду с простой-JWT с DRF

Я создаю приложение типа социальной сети (клон twitter). Я использовал allauth для регистрации и входа, который прекрасно работал с конечными точками /accounts/login и accounts/signup с их представлением по умолчанию.

Но сейчас я реализовывал simple-JWT для аутентификации. Я следил за этим постом в блоге . Парень использует dj-rest-auth с JWT. Вход и выход осуществляется с помощью конечных точек /dj-rest-auth/login/ и dj-rest-auth/logout/ соответственно.

Теперь что насчет регистрации? В блоге упоминается:

Обратите внимание, что этот список включает социальные аккаунты allauth; это сделано для того, чтобы конечная точка регистрации dj-rest-auth могла работать.

Но я не могу выяснить конечную точку того же самого.

Поэтому я решил создать свой собственный регистрационный url со следующими кодами:

views.py

class UserRegister(APIView):
def post(self,request):
    serializer = UserSerializer(data = request.data)
    if serializer.is_valid():
        serializer.save()
        return Response({"User":serializer.data})
    return Response({"errors":serializer.errors})

serializers.py

class UserSerializer(serializers.Serializer):
email = serializers.EmailField(max_length=50, min_length=6)
username = serializers.CharField(max_length=50, min_length=6)
password = serializers.CharField(max_length=150, write_only=True)
class Meta:
    model = User
    fields = ['fname','lname','email','username','password']

def validate(self, args):
    email = args.get('email', None)
    username = args.get('username', None)
    if User.objects.filter(email=email).exists():
        raise serializers.ValidationError({"email":"email already exists"})
    if User.objects.filter(username=username).exists():
        raise serializers.ValidationError({"username":"username already exists"})

    return super().validate(args)

def create(self, validated_data):
    return User.objects.create_user(**validated_data)

Но при запуске соответствующей конечной точки я получаю ответ:

{
"detail": "Authentication credentials were not provided."
}
Вернуться на верх