2011-01-31 12 views
23

Czy urządzenie ma oddzwonić, gdy użytkownik się zaloguje i wyloguje?Deweloper oddzwoni

To właśnie wymyśliłem:

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 

To właśnie przyszedł z śledzenie użytkowników, które są aktualnie zalogowany

+0

before_logout działa prawidłowo, ale after_authentication jest nie jest uruchamiany, gdy użytkownik zarejestruje się, tylko gdy się zaloguje ... To nie jest normalne zachowanie, prawda? Jakieś pomysły? – Robin

+0

Masz pomysł na połączenie z tokenami? –

+0

Co masz na myśli przez token logowania? – s84

Odpowiedz

16

Nie jestem ekspertem, ale wierzę, że wywołania zwrotne (haki.) znajdują się na poziomie Warden (Devise jest zbudowany na Warden).

after_set_user i before_logout w Warden powinno wystarczyć dla Ciebie, ale istnieją inne opcje wymienione w Warden::Hooks

+0

Słodko, spróbuję tych i wrócę do ciebie! – s84

+15

Haczyki mogą wchodzić w 'config/initializers/devise.rb' na wypadek, gdyby ktoś się zastanawiał, jak jestem. – manafire

+0

Zobacz także: https://github.com/hassox/warden/wiki/callbacks –

5

Można nadpisać sign_in w kontrolerze aplikacji jak ten

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 
Powiązane problemy