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