发送密码重置后设计 302 无限重定向

Devise 302 infinite redirect after password reset sent

提问人:nico_lrx 提问时间:11/11/2023 最后编辑:nico_lrx 更新时间:11/22/2023 访问量:39

问:

赏金将在 6 天后到期。这个问题的答案有资格获得 +100 声望赏金。nico_lrx引起人们对这个问题的更多关注
对于DEVELOPMENT环境中Devise路由上的所有POST请求,我都遇到了这个重定向问题。请帮我解决这个问题。

在 Rails 6 应用程序中,我使用的是 Devise gem(版本 4.9.3)。在开发环境中,当我尝试重置密码时,会发送出站电子邮件,但随后我收到 302 重定向,导致重定向无限循环:

已重定向至“已完成”http://localhost:3000/users/sign_in“已找到302个诊断树 在 7022 毫秒中(ActiveRecord:12.8 毫秒 |分配:31198)

启动 GET “/users/”

我试图覆盖密码控制器并设置重定向路径,但同样的问题:

def after_sending_reset_password_instructions_path_for(resource_name)
    root_path
end

我尝试禁用缓存,清除了cookie /会话,但仍然收到错误。

也许它来自用户模型,在该模型中,我禁用了密码验证以创建没有密码的用户(他们在确认电子邮件后添加密码)。

用户模型:

class User < ApplicationRecord
    attr_accessor :skip_password_validation

    has_secure_token
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable, :confirmable

    protected

    def password_required?
    return false if skip_password_validation
    super
  end
end

这个问题从何而来?我没有想法了......感谢您的帮助!

此问题仅发生在开发环境中,并且涉及所有 Devise POST 请求(重定向循环也会在创建帐户、登录/注销等后发生)。

Ruby-on-Rails 设计

评论

1赞 dbugger 11/12/2023
你的根路径是什么?
0赞 nico_lrx 11/12/2023
根路径为 /,用户登录与否没有区别。

答: 暂无答案