Rack Warden:如何访问传递给失败的消息!方法?

时间:2012-04-07 17:38:45

标签: rack warden

当Warden中的身份验证策略失败时,可以将消息传递给fail!方法。如何在我的默认故障应用程序操作中访问此消息,以便我可以在Flash消息中显示它?我尝试request.env['warden'].message,但在查看Warden::Proxy的代码后,此变量仅设置为获胜策略。想法?

2 个答案:

答案 0 :(得分:3)

使用失败或失败时!方法,您可以从环境监护人对象中获取失败消息。

示例:

def unauthenticated
  flash[:alert] = env["warden"].message unless env["warden"].message.blank?
end

http://www.rubydoc.info/github/hassox/warden/Warden/Proxy#message-instance_method

答案 1 :(得分:0)

使用throw(:warden, :foo => 'bar')或许是一种不同的策略失败方式(来自最近的文档)。您投掷的任何内容都将通过request.env['warden.options']在您的失败申请中提供,包括一串所需的网址。 HTH