Kullanıcı oturumunun süresi dolduğunda düzenli olarak kontrol etmemi sağlayan bir çözüm arıyorum ve eğer öyleyse onu giriş sayfasına yönlendirin.
Authlogic gem kullanıyorum, yaptığım şey current_user üzerinde bir test yapan bir işlevi çağırmaktır.
USER_SESSION_TIMEOUT'ım 5minutes, bu yüzden her 5:10 dakikada bir ajax araması yapıyorum. Ruby on raylar - Authlogic: kullanıcı oturumunun geçerli olup olmadığını periyodik olarak kontrol edin
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
<%= periodically_call_remote :url => {:controller => 'user_session', :action => 'check_session_timed_out'}, :frequency => (USER_SESSION_TIMEOUT + 10.seconds) %>
Ben kullanıcı nesnesi örnein diyoruz her zaman güncellenir fark ve böylece oturum 5 dakika yenilenir.
Yalnızca bir sekme açıldığında sorun yok, ancak her seferinde 2 sekmesi varsa, check_session_timed_out current_user çağrısı kullanıcıyı günceller ve oturumun süresi hiç bitmez.
herhangi bir fikir? Teşekkür
AuthLogic source itself itibaren
MERCI! Bu mükemmel – Mathieu