我正在尝试了解与用户一起为 rails 应用程序创建密码重置功能的机制,并且想知道是否有人可以引导我完成其他一些身份验证系统使用的样板逻辑。
有一个关于这个的 Railscast: 记住我和重置密码
我发现的流程效果很好:
用户单击"重置密码"链接,该链接转到"重置"controller_action link_to"重置",reset_path
def reset
@user = ...
@user.temporary_password = SecureRandom(5)
@user.password = @user.temporary_password
redirect_to ...
end
我通过电子邮件发送@user.temporary_password。在视图逻辑中,通知用户他们需要重置其密码,因为存在 @user.temporary_password。一旦他们更改了密码,我就会更改@user.temporary_password=nil。做!