Подтвердить что ты не робот

Разработка обратных вызовов

Имеет ли обратный вызов обратный вызов при входе и выходе пользователя?

Вот что я придумал:

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

Это то, к чему я пришел, чтобы отслеживать пользователей, которые в настоящее время вошли в систему.

4b9b3361

Ответ 1

Я не эксперт, но я считаю, что обратные вызовы (крючки) находятся на уровне Warden (Devise построен поверх Warden).

after_set_user и before_logout в Warden должны сделать трюк для вас, но есть и другие варианты, перечисленные в Warden:: Hooks

Ответ 2

Вы можете перезаписать 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