【问题标题】:Access user in Warden before_failure callback在 Warden before_failure 回调中访问用户
【发布时间】:2021-06-25 16:40:18
【问题描述】:

有没有办法通过before_failurecallback访问认证失败的用户?

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

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

【问题讨论】:

  • request.params 可能有用户电子邮件(虽然不确定)

标签: ruby-on-rails devise warden


【解决方案1】:

上面第一条评论中的建议是一个可行的解决方案,并且用户电子邮件可用。

我能够验证答案是否正确,但在这里偶然发现了另一个答案:https://stackoverflow.com/a/33230548/1945948

电子邮件可通过before_failure 回调获得:

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

然后可以使用电子邮件找到您的用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多