【发布时间】:2010-10-18 10:45:45
【问题描述】:
我正在为 Rails 应用程序编写一个非常简单的邮件系统。我正在使用 RESTful 身份验证。 这是一个相当传统的设置,当用户注册和忘记密码时,我会发送相同的电子邮件。 我只是遇到了一个我似乎无法解决的问题。
我想对这两个实例使用相同的电子邮件模板,即使“新用户”电子邮件将来自用户控制器,而“忘记密码”电子邮件将来自密码控制器。
电子邮件看起来像这样:
<%=h @user.name %>,
Your membership details:
Username: <%=h @user.login %>
Password: <%=h @user.password %>
当用户注册时,这工作得很好,导致一封看起来像这样的电子邮件:
Bryan,
Your membership details:
Username: bryan
Password: password
不幸的是,当尝试使用此模板从密码控制器发送“忘记密码”电子邮件时,一切都会中断。 不过,令我困惑的是,它只是中断:
Bryan,
Your membership details:
Username: bryan
Password:
换句话说,@user.name 仍然有效,@user.login 也是如此。但是由于某种原因,在这种状态下@user.password 没有通过。
感谢您的回复。需要明确的是,在这种情况下,安全性确实不是问题,因此,能够以纯文本形式发送忘记的密码而不是通过重置密码过程会更好,但我很感激这一点通常情况并非如此。
【问题讨论】:
-
如果安全不是问题,不要要求用户提供密码。如果这是一个问题,请尊重它。说“安全不是问题,但我们会要求用户提供密码(而不是保护它),因为他们很清楚他们中的许多人会提供他们在其他地方使用的密码”是不负责任的。
-
同意 MarkusQ。如果您以明文形式存储密码并且有人能够查看您的用户表,那么该人就可以访问您用户 80% 的电子邮件帐户。
标签: ruby-on-rails ruby variables scope restful-authentication