'Unable to set_password using POST request
I'm trying to make a function which can reset user password of OTP matached to the stored value in user model.
I'm able to make a successful post request and JSON response I'm getting
{
"detail": "Password have been changed"
}
But problem is password in actual dosent change but remains the older one. Can anybody identify what is the problem in my function. My API view is :
@api_view(['POST'])
def reset_password(request):
data = request.data
email = data['email']
otp_to_verify = data['otp']
new_password = data['password']
user = User.objects.get(email=email)
if User.objects.filter(email=email).exists():
otp_to_verify == user.otp #user model has a field name otp
if new_password != '':
# user.set_password(make_password(data['password']))
user.set_password((data['password'])) #changed to this but dosnt work
user.save()
message = {
'detail': 'Password have been changed'}
return Response(message, status=status.HTTP_200_OK)
else:
message = {
'detail': 'Something wrong'}
return Response(message, status=status.HTTP_400_BAD_REQUEST)
else:
message = {
'detail': 'Something went wrong'}
return Response(message, status=status.HTTP_400_BAD_REQUEST)
So I'm not sure what might be the problem as it's passing silently without giving any errors but in the end password does not change.
EDIT: using this method user password hash in database gets changed but unable to login with new password and older password also gets invalid this error comes then .
Unauthorized: /api/v1/accounts/login/
[11/Feb/2022 17:44:54] "POST /api/v1/accounts/login/ HTTP/1.1" 401 63
Not Found: /jwt/refresh-token
[11/Feb/2022 17:44:54] "POST /jwt/refresh-token HTTP/1.1" 404 2761
Solution 1:[1]
I think that user.set_password method dont need to use make_password function.
set_passwordhash plain text password by defaultuser.set_password(data['password'])Using
make_passworduser.password = make_password(data['password'])
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | mon io |
