在 Warden before_failure 回调中访问用户

Access user in Warden before_failure callback

有没有办法通过 before_failure callback 访问身份验证失败的用户?

Warden::Manager.before_failure do |env, opts|
  request = Rack::Request.new(env)
  env['SCRIPT_INFO'] =~ /\/(.*)/
  request.params[:action] = 
end

我将这个配置放在设计初始化器中,我听说其他人提到将它放在用户模型中,所以也许我可以那样访问它。

上面第一个评论中的建议是可行的解决方案,用户邮箱可用。

我能够验证答案是否正确,但在这里偶然发现了另一个答案:

电子邮件可在 before_failure 回调中通过:

email = env["action_dispatch.request.request_parameters"][:user] &&
        env["action_dispatch.request.request_parameters"][:user][:email]

然后该电子邮件可用于查找您的用户。