проверять пароль при использовании rails password_digest - PullRequest
0 голосов
/ 25 октября 2018

Итак, я реализовал систему аутентификации в своем рельсовом 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.

Как я могу сделать это правильно?

1 Ответ

0 голосов
/ 25 октября 2018

Есть метод user.authenticate(pass).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...