Rails bcrypt丢失了密码

时间:2013-06-04 09:42:17

标签: ruby-on-rails passwords bcrypt

您好我正在尝试使用rails中的bcrypt忘记密码。我采用了bcrypt文档中描述的方法“forgot_password”并为它制作了一个邮件程序。 我已在我的用户模型中设置此方法,如self.forgot_password

我正在尝试在session / new中的登录表单下的表单中调用此方法,但我认为我没有很好的方法来执行此操作。 这是我的表单代码:

<%= form_for :user, :url=>{:action=>"forgot_password"} do |f| %>
  <p>Réintialiser mon mot de passe en renseignant votre email ci-dessous :</p>
    <div class="field">
        <%= f.text_field :email, :placeholder=>"ex: cdupont@gmail.com" %>
          </div>
            <div class="actions">
          <%= f.submit "Me renvoyer un email", :class => 'btn btn-warning'   %></center>
            </div> 
            <% end %>

1 个答案:

答案 0 :(得分:1)

为他们分配一个随机的并将其邮寄给他们,要求他们改变它

def forgot_password
@user = User.find_by_email(params[:email])
  random_password = Array.new(10).map { (65 + rand(58)).chr }.join
  @user.password = random_password
  @user.save!
  Mailer.create_and_deliver_password_change(@user, random_password)
end

检查一下:https://github.com/codahale/bcrypt-ruby