gpt4 book ai didi

ruby-on-rails - 设计密码重置问题 Rails 4

转载 作者:行者123 更新时间:2023-12-04 05:55:48 26 4
gpt4 key购买 nike

我正在使用 Devise 对 Rails 4 应用程序进行身份验证,但遇到密码重置问题。在本地,一切正常,当我将重置链接粘贴到(即 localhost:3000/users/password/edit?reset_password_token=e_f3ZpqrE_rTBZmKJk_E)时,它按预期工作。

然而,在 Heroku 上,Devise 似乎甚至没有注意到 :reset_password_token 参数,并自动重定向到/users/signin 并提示“如果没有密码重置电子邮件,您将无法访问此页面。如果您确实来自密码重置电子邮件,请确保您使用了提供的完整 URL。”

这是正在生成的链接示例:http://mysite.io/users/password/edit?reset_password_token=anzYNreZEcz4-dtZy5Uf

我什至覆盖了我自己的 Controller 中的 assert_reset_token_passed 方法来检查 params[:reset_password_token] 是否实际上是空白的,出于某种原因,rails 没有将其从 url 中提取出来。这是我修改后的方法:

def assert_reset_token_passed
logger.info params[:reset_password_token] #This is blank somehow
if params[:reset_password_token].blank?
set_flash_message(:alert, :no_token)
redirect_to new_session_path(resource_name) #This is where the redirect happens
end
end

任何帮助将不胜感激。

最佳答案

我遇到了完全相同的问题。我的解决方法是更新 production.rb 中的 config.action_mailer.default_url_options 以包含完整的主机(在我的例子中是“www.mydomain.com”与“mydomain.com”)。

澄清一下,以前是

config.action_mailer.default_url_options = { :host => 'mydomain.com' }

现在是

config.action_mailer.default_url_options = { :host => 'www.mydomain.com' }

关于ruby-on-rails - 设计密码重置问题 Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com