一种简单的方法,让用户只需一步即可使用您建议的链接确认电子邮件地址并设置初始密码...
发送一封您的应用生成的电子邮件,包括 reset_password_token,并考虑用户拥有该令牌以确认该电子邮件地址的有效性。
在系统帐户生成代码中,假设用户模型设置有 :recoverable 和 :database_authenticable 设计模块...
acct = User.new
acct.password = User.reset_password_token #won't actually be used...
acct.reset_password_token = User.reset_password_token
acct.email = "user@usercompany.com" #assuming users will identify themselves with this field
#set other acct fields you may need
acct.save
在设置初始密码时,使用户的设备重置密码视图更加清晰。
views/devise/passwords/edit.html.erb
...
<%= "true" == params[:initial] ? "Set your password" : "Reset your password" %>
...
生成的电子邮件
Hi <%= @user.name %>
An account has been generated for you.
Please visit www.oursite.com/users/password/edit?initial=true&reset_password_token=<%= @user.reset_password_token %> to set your password.
无需在您的 User 模型中包含 :confirmable Devise 模块,因为如果没有电子邮件中的 reset_password_token ,您的应用创建的帐户将无法访问。
Devise 将处理提交并清除 reset_password_token 字段。
有关reset_password_token 方法和朋友的详细信息,请参阅devise_gem_folder/lib/devise/models/recoverable.rb 和database_authenticatable.rb。
如果您想使用 Devise :confirmable 模块而不是这种方法,请参阅 Devise wiki page。