当用户登录和退出时,设计是否有回电?
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
这是我跟踪当前登录用户的方式。
答案 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