Я учусь Django, я создавал Апи отдых для входа в систему и регистрации апи он работал, но все внезапном Вход апи не работаетОшибка аутентификации Джанго рамки отдыха
authenticate(username=username, password=password)
не всегда возвращается ни при регистрации api работает правильно. ниже код для входа в систему
@api_view(['POST'])
def login(requset):
"""
This api for user login
---
parameters:
- name: username
description: username for login
required: true
type: string
paramType: form
- name: password
required: true
type: string
paramType: form
consumes:
- application/json
- application/xml
produces:
- application/json
- application/xml
"""
username = requset.data.get('username')
print(username)
password = requset.data.get('password')
print(password)
user = authenticate(username=username, password=password)
if user is not None:
response_data = {}
response_data['result'] = 'success'
response_data['message'] = 'Login successful'
# response_data['auth_token'] = auth_token
return HttpResponse(json.dumps(response_data),
content_type="application/json")
else:
response_data = {}
response_data['result'] = 'error'
response_data['message'] = 'Login Unsuccessful'
return HttpResponse(json.dumps(response_data),
content_type="application/json")
Это код для регистрации
class Register(generics.CreateAPIView):
"""
Your docs
---
type:
username:
required: true
type: string
password:
required: true
type: url
email:
required: true
type: string
serializer: .serializers.UserSerializer
omit_serializer: false
parameters_strategy: merge
omit_parameters:
- path
parameters:
- name: username
description: Username for registration purpose
required: true
type: string
paramType: form
- name: password
description: * password for registration purpose
required: true
type: string
paramType: form
- name: email
description: * email for registration purpose
required: true
type: string
paramType: form
responseMessages:
- code: 401
message: Not authenticated
consumes:
- application/json
- application/xml
produces:
- application/json
- application/xml
"""
#first define query set
queryset = User.objects.all()
#define model
model = User
#define serializer
serializer_class = UserSerializer
Код для userserializer
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','username','email','password','is_active')
я всегда получаю ниже ответ
{
"message": "Login Unsuccessful",
"result": "error"
}
Хотя раньше это было подходящий. Любая помощь будет высоко ценится.
Вы используете сериалайзер для регистрации, он не будет хэш пароля (будет сохранен в виде простого текста) и аутентификации будет хэш пароля, а затем проверить. – ofnowhere
Итак, можете ли вы подтвердить, что ваша регистрация является проблемой? После регистрации вы можете найти нового пользователя на страницах администратора? – dkarchmer