Разработать обратные вызовы - PullRequest
23 голосов
/ 31 января 2011

Есть ли у устройства обратные вызовы при входе и выходе пользователя?

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

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 ]

16 голосов
/ 31 января 2011

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

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

5 голосов
/ 29 января 2013

Вы можете переписать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...