我有一个 Rails 3.0 项目使用devise我被要求在数据库中注册每次成功的登录和每次失败的尝试。
来自devise我想我必须扩展文档FailureApp
但这些示例只是重定向用户,根本没有使用该模型。在堆栈溢出我刚刚发现这个问题但仍未得到答复,这并不令人鼓舞
谁能告诉我这种方法是否正确,或者不能以这种方式完成,或者我是否缺少一些更简单的替代方法?
(我知道还没有代码,我只是在深入研究之前寻找一些小指导)
Thanks.
我自己花了一点时间研究这个问题,并认为其他人可能会发现这很有用。
设备控制器中的创建操作调用warden.authenticate!
,它尝试使用提供的参数对用户进行身份验证。如果身份验证失败则authenticate!
将调用设计失败应用程序,然后运行SessionsController#new
行动。请注意,您拥有的任何过滤器create
如果身份验证失败,操作将不会运行。
所以解决办法就是在后面加一个filternew
检查内容的动作env["warden.options"]
并采取适当的行动。
e.g.
def instrument_failed_login
instrument "failed_login.staff" if failed_login?
end
def failed_login?
(options = env["warden.options"]) && options[:action] == "unauthenticated"
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)