Итак, я реализовал систему аутентификации в своем рельсовом API, используя гемы knock
и bcript
.Поэтому я добавил has_secure_password
в свою модель пользователя, и когда создается новый пользователь, он имеет атрибут password_digest
в БД.
Сейчас я создаю возможность для конечного пользователя изменить его / еепароль.В целях безопасности я хочу запросить старый пароль, проверить, верен ли старый пароль, и, если это так, обновить пароль пользователя.В противном случае отправьте сообщение об ошибке.
Итак, вот что я написал:
def update_password
@user = User.find(params[:id])
if params[:password][:oldPassword] === @user.password
if @user.update(password: params[:password][:newPassword])
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
else
render json: {erreur: "the current password is wrong"}, status: :unprocessable_entity
end
end
Моя проблема здесь: params[:password][:oldPassword] === @user.password
проверить, что текущий пароль действителен не работает: он всегда вернет false
.
Как я могу сделать это правильно?