设计回电

时间:2011-01-31 10:56:50

标签: ruby-on-rails ruby devise

当用户登录和退出时,设计是否有回电?

这就是我提出的:

Warden::Manager.after_authentication do |user,auth,opts|
  user.update_attribute(:currently_signed_in, true)
end

Warden::Manager.before_logout do |user,auth,opts|
  user.update_attribute(:currently_signed_in, false)
end

这是我跟踪当前登录用户的方式。

2 个答案:

答案 0 :(得分:16)

我不是专家,但我相信回调(钩子)处于守望者级别(Devise建立在Warden之上)。

Warden中的after_set_user和before_logout应该可以帮到你,但Warden::Hooks

中列出了其他选项。

答案 1 :(得分:5)

您可以像这样覆盖应用程序控制器中的sign_in

 def sign_in(*args)
   super(*args)
    # do whatever you want here
    token = current_user.authentications.where(provider: "facebook").first.token
    facebook = Koala::Facebook::API.new(token)
    session[:facebook] = facebook
end