Регистрация пользователей наряду с простой-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."
}