Sto cercando una soluzione che mi consenta di controllare periodicamente se la sessione utente è scaduta e in tal caso reindirizzare la pagina di accesso.
Sto utilizzando la gemma di Authlogic, quindi quello che sto facendo è chiamare una funzione che esegue un test su current_user.
Il mio USER_SESSION_TIMEOUT è 5 minuti, quindi effettuo questa chiamata ajax ogni 5:10 minuti.Ruby on rails - Authlogic: controlla periodicamente se la sessione utente è valida
<%= periodically_call_remote :url => {:controller => 'user_session', :action => 'check_session_timed_out'}, :frequency => (USER_SESSION_TIMEOUT + 10.seconds) %>
def check_session_timed_out
if !current_user
flash[:login_notice] = "Your session timed out due to a period of inactivity. Please sign in again."
render :update do |page|
page.redirect_to "/user_sessions/new"
end
else
render :nothing => true
end
end
ho notato che ogni volta che io chiamo CURRENT_USER l'oggetto utente viene aggiornato e quindi la sessione si rinnova per 5 minuti.
Non c'è alcun problema quando viene aperta una sola scheda, ma se ho 2 schede ogni volta chiamo check_session_timed_out current_user rinnovo l'aggiornamento all'utente e quindi la sessione non scade mai.
qualche idea? Grazie
MERCI! è perfetto – Mathieu