2016-12-16 3 views
1

Я пытаюсь изменить пароль пользователя, и он успешно менялся, но после этого он не позволяет мне что-то делать, потому что пользователь становится несанкционированным ... Возможно, мне не хватает части, которая повторно проверяет их.Изменение пароля пользователя в разработке

Это мой код, чтобы обновить свой пароль

def password 

    if current_user.valid_password?(params[:current_password]) 

     current_user.password = params[:new_password] 

     if current_user.save 
     #sign them in 

     #tried doing this to sign them in again but didn't work 
      sign_in(:user, current_user) 
      response.headers['X-CSRF-Token'] = form_authenticity_token 
      response.headers['X-Pyne-Auth'] = current_user.authentication_token 

      render :json => {:success => true} and return 
     else 
      render :json => {:success => false, error: "Unexpected error while trying to save user. Please try again."} and return 
     end 

    else 
     render :json => {:success => false, error: "Your current password is incorrect. Please try again"} and return 
    end 

    end 

Я могу обновить пароль, но есть проблемы с доступом приложения снова, поскольку пользователь становится несанкционированным.

Спасибо

ответ

2

Попробуйте bypass_sign_in(@user) как предложено in the Devise wiki.

+0

Я собираюсь все точно так же, как в этой вики, и он не входит сюда, если '@ user.update (user_params)' ... просто переходит в else @Brian – Walker

+0

Похоже, что 'update' не работает тогда. Есть ли что-нибудь на вашей консоли, что говорит о том, что препятствует обновлению? В качестве альтернативы вы можете посмотреть '@ user.errors.full_messages' в предложении else и посмотреть, что происходит. – Brian

+0

Брайан, я делал это в своем контроллере пользователей, и я просто заметил, что у меня есть это на моих маршрутах: devise_for: users,: controllerlers => {: sessions => "api/v1/sessions", пароли: 'api/v1/passwords '},: path_prefix =>' api/v1'' Означает ли это, что я должен иметь это в одном из этих контроллеров или что-то в этом роде? – Walker

Смежные вопросы