3

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

4

2 回答 2

4

使用时失败还是失败!方法,您可以从环境守望者对象中获取失败消息。

例子:

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

于 2014-10-30T09:28:34.590 回答
0

也许失败策略的另一种方式(来自最近的文档)是使用throw(:warden, :foo => 'bar'). 你抛出的任何东西都将在你的失败应用程序中可用request.env['warden.options'],包括所需的 url 字符串。高温高压

于 2012-11-10T08:06:33.743 回答