我正在尝试通过ActionMailer向忘记密码的用户发送电子邮件。他们输入他们的电子邮件并按提交,并且应该在电子邮件中向他们发送带有密码的电子邮件。但是,由于我有has_secure_password,我猜测password_digest不允许我提取密码。我收到一封电子邮件说:
Your login information:
Email: edmai@syr.edu
Password:
所以看起来rails正在做些什么来阻止我取出密码。这是我的文件:
电子邮件模板:
Dear <%= @user.name %>,
<p>
You recently made a request for a lost password. Please remember to keep your passwords recorded in a safe place.
</p>
<p>
Your login information: <br>
Email: <%= @user.email %> <br>
Password: <%= @user.password %> <br>
</p>
<p>
Sincerely, <br>
Pholder Staff
</p>
用户模型
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email, :name, :password, :password_confirmation, :profilepic
validates_presence_of :password, :on => :create
如果您需要我的更多文件,请告诉我
答案 0 :(得分:2)
has_secure_password
使用bcrypt哈希您的用户密码。这样就不会在您的数据库中存储纯文本密码(永远不会发生这种情况)。有关该方法的一些信息,请访问:http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html
像@apneadiving所说,你需要重置密码并向用户发送密码重置链接。
按顺序观看这两个Railscast,他们可能会帮助你: