Разработать обратные вызовы
У 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 ответа
Решение
Я не эксперт, но я считаю, что обратные вызовы (хуки) находятся на уровне Warden (Devise построен поверх Warden).
after_set_user и before_logout в Warden должны помочь вам, но в Warden::Hooks есть и другие варианты
Вы можете переписать 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