मैं एक समाधान की तलाश कर रहा हूं, यदि उपयोगकर्ता सत्र समाप्त हो गया है और यदि उसे लॉगिन पृष्ठ पर रीडायरेक्ट किया गया है तो मुझे समय-समय पर जांच करने की अनुमति मिल रही है।
मैं औथ्लोगिक मणि का उपयोग कर रहा हूं, इसलिए मैं जो कर रहा हूं वह एक फ़ंक्शन को कॉल करता है जो current_user पर परीक्षण करता है।
मेरा USER_SESSION_TIMEOUT 5 मिनट है इसलिए मैं हर 5:10 मिनट में यह AJAX कॉल करता हूं।रेल पर रूबी - ऑथलॉगिक: समय-समय पर जांचें कि क्या उपयोगकर्ता सत्र मान्य है
<%= 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
मैंने देखा है कि हर बार जब मैं उपयोगकर्ता वस्तु current_user फोन अद्यतन किया जाता है और इतने सत्र 5 मिनट के लिए नए सिरे से किया गया है।
कोई समस्या नहीं है जब केवल एक टैब खोला जाता है लेकिन यदि मेरे पास प्रत्येक बार 2 टैब होते हैं तो मैं check_session_timed_out current_user नवीनीकरण उपयोगकर्ता को अद्यतन करता हूं और इसलिए सत्र कभी समाप्त नहीं होता है।
कोई विचार? धन्यवाद
मेर्सी! यह एकदम सही है – Mathieu