【发布时间】:2013-01-16 01:27:03
【问题描述】:
我在我的 Rails 3 应用程序中使用 Devise。当前重置密码的行为是点击“忘记密码?”关联。这里的链接是:
(url)/password/new.user
这将调用设计passwords_controller.rb中的以下方法:
def new
build_resource({})
end
这个方法可以:
生成密码重置令牌并将其添加到数据库中,
-
通过包含令牌的链接向此人发送电子邮件:
(url)/password/edit?reset_password_token=xxxxxxxxxxxxxxx
有什么方法可以说服 Devise 只执行第 1 步而不执行第 2 步?如果可能的话,是否有任何我应该注意的安全问题,并且我确实采用了这种方法来简化网站的一部分。
【问题讨论】:
-
您的问题是您是否可以阻止设计发送链接在代码中,或者由于来自客户端的一些格式错误的请求?
-
您可以将 gem 拉入您的供应商/缓存并在那里修改代码。这将允许您更改设计处理 build_resource 方法的方式。
-
致 Kobaltz:是的,我可以将宝石拉入并修改它,但这不是我想要的。
-
致 Chris Cashwell:两者都不是。我希望它不发送电子邮件。请阅读问题。
标签: ruby-on-rails devise