2010-02-17 18 views
7

Sto utilizzando Authlogic per gestire le sessioni nella mia applicazione.
Tuttavia, per impostazione predefinita, authlogic consente a un utente di accedere più volte da computer diversi.
Non lo voglio (l'utente paga per ottenere l'accesso e voglio evitare che gli utenti condividano i loro account).Authlogic e più sessioni per lo stesso utente

Guardando la documentazione Authlogic, ho trovato il perishable_token. Ma quando provo ad implementarlo, ho appena ricevuto un errore che dice che è richiesto il persistence_token (quando non dovrebbe essere come io uso quello deperibile).

Come procedere utilizzando le funzioni di Authlogic?

Grazie :)

risposta

16

Ok, quindi il token deperibili non era assolutamente la strada giusta;)

Siamo "solo" bisogno di resettare la persistenza di token ogni volta che un utente si collega o si disconnette. Con questo nel mio modello UserSession, ogni utente si disconnette da qualsiasi altra sessione al momento del login.

class UserSession < Authlogic::Session::Base 
    before_destroy :reset_persistence_token 
    before_create :reset_persistence_token 

    def reset_persistence_token 
     record.reset_persistence_token 
    end 
end 
+0

bel lavoro! Lo sto cercando da molto tempo ormai. Ahm, come puoi avvisare o avvisare l'utente che è stato registrato su un altro computer? .. – jovhenni19

+0

Fai attenzione però, questo significa che quando esci, se un utente è connesso da un altro dispositivo o macchina, sarà costretto a registrarsi su. Non la migliore UX. –

Problemi correlati