当用户的会话超时时,有没有办法让回调/处理某些动作?
覆盖DeviseSessionsController的普通旧版本不起作用:
class SessionsController < Devise::SessionsController
def destroy
#do something
super
end
end
这仅在用户注销时才有效,这是有道理的,因为它似乎不会在会话超时时调用控制器。有人可以帮助我吗?
答案 0 :(得分:3)
我发现做Warden.before_logout是最好的解决方案:
# app/models/user.rb
Warden::Manager.before_logout do |user, auth, opts|
#fdsafdsafdsa
end
不幸的是,似乎没有办法用纯粹的Devise做到这一点。
答案 1 :(得分:0)
before_filter :destroy_custom, :only => [ :destroy ]
def destroy_custom
# Do your thang
end
我能够在新方法上做到这一点。我猜也可以用破坏做同样的事情。回调可以在devise_custom中调用,或者devise_custom本身可能是你想要在destroy之前执行某些东西的方法。