Пользовательский метод аутентификации в Django Rest Framework возвращает None, а не пользователя
Я пытался реализовать пользовательский метод аутентификации в DRF, но перезаписанный метод аутентификации не возвращает User, а возвращает None. Вот код. Сначала конфигурация в моем файле settings.py.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'passewok.authentication.CustomAuthentication',
],
}
Теперь мой класс CustomAuthentication
from rest_framework import authentication
from apps.passmanager.models import User
class CustomAuthentication(authentication.BaseAuthentication):
def authenticate(self, request):
password = request.META.get('HTTP_X')
username = request.META.get('HTTP_Y')
private_key = request.META.get('HTTP_Z')
if not password or not username or not private_key:
return None
master_key=self.get_master_key()
print(master_key,password,master_key==private_key)
if master_key!=private_key:
return None
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
raise exceptions.AuthenticationFailed('No such user')
print(user.password)
return (user,None)
Затем представление, в котором я реализую или использую мой пользовательский auth
@api_view(["POST"])
def login_manager(request):
try:
result = authenticate(request)
print(result)#Here prints None in anyway
if result:
user=result
login(request=request,user=user)
return Response(
{
"Usuario": UserSerializer(user).data,
"token": AuthToken.objects.create(user)[1],
},
status=HTTP_200_OK
)
else:
return Response({"Error": "Failed"}, status=HTTP_401_UNAUTHORIZED)
except:
return Response({"Error": "Failed"}, status=HTTP_401_UNAUTHORIZED)