Rails bcrypt 丢失密码

3

您好,我正在尝试在Rails中使用bcrypt创建忘记密码功能。我已经按照bcrypt文档中描述的方法“forgot_password”创建了邮件发送程序。

我将此方法设置在我的用户模型中,例如:self.forgot_password。

我正在尝试在sessions/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个回答

2

将随机生成的密码分配给用户,并通过邮件通知他们更改密码

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,它与IT技术有关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接