Я ищу решение, позволяющее периодически проверять, если пользовательский сеанс истек, и если так перенаправить его на страницу входа в систему.
Я использую Authlogic gem, поэтому то, что я делаю, вызывает функцию, которая делает тест на current_user.
My USER_SESSION_TIMEOUT - 5 минут, поэтому я делаю этот айял-звонок каждые 5:10 минут.Ruby on rails - Authlogic: периодически проверяйте, действителен ли сеанс пользователя
<%= 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, обновляйте обновление пользователя, и поэтому сеанс никогда не истекает.
любая идея? Благодаря
MERCI! это идеально – Mathieu