Zac*_*ach 3 authentication ruby-on-rails devise ruby-on-rails-4
我正在使用Devise进行Rails 4应用程序的身份验证,并且遇到密码重置问题.在本地,一切正常,当我粘贴重置链接(即localhost:3000/users/password/edit?reset_password_token = e_f3ZpqrE_rTBZmKJk_E)时,它按预期工作.
然而,在Heroku上,Devise似乎甚至没有注意到:reset_password_token param,并自动重定向到/ users/signin并注意到"如果没有来自密码重置电子邮件,则无法访问此页面.如果您确实来自密码重置电子邮件,请确保您使用了提供的完整网址."
以下是生成链接的示例:http://mysite.io/users/password/edit?reset_password_token = anzYNreZEcz4-dtZy5Uf
我甚至覆盖了我自己的控制器中的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
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
小智 5
我遇到了完全相同的问题.对我来说,修复是更新config.action_mailer.default_url_optionsin production.rb以包含完整的主机(在我的情况下'www.mydomain.com'vs'mydomain.com').
为了澄清,它曾经是
config.action_mailer.default_url_options = { :host => 'mydomain.com' }
Run Code Online (Sandbox Code Playgroud)
现在是
config.action_mailer.default_url_options = { :host => 'www.mydomain.com' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |