2015-09-14 4 views
0

Я новичок в ruby, используя версию 1.8.7. Пожалуйста, помогите мне настроить тайм-аут сеанса и перенаправление на мою страницу входа.Как настроить тайм-аут сеанса в Ruby on Rails и перенаправить на страницу входа

Config:

ActionController::Base.session = { :key => '_fleetsmartlive_session', :secret => 'e9e5983619325de4f',expire_after => 5.minutes', } 
+0

Пожалуйста, добавьте некоторые примеры кода – usmanali

+0

ActionController :: Base.session = { : ключ => '', _fleetsmartlive_session : секрет => 'e9e5983619325de4f', expire_after => 5.minutes ' – Raj

+0

Пожалуйста, уточните свой вопрос: что вы пробовали, какую библиотеку auth вы используете (изобретаете?), как она работает не так, как ожидалось. не – Jesper

ответ

1

Добавьте это в верхней части контроллера

before_filter :session_expiry 
before_filter :update_activity_time 

приложений Добавьте эти методы в контроллере приложения. Это делает тайм-аут сеанса, если страница остается бездействующей в течение некоторого времени.

def session_expiry 

    get_session_time_left 
    unless @session_time_left > 0 
    flash.now[:error] = "Your session has timed out. Please log back in." 
    sign_out 
    end 
end 

def get_session_time_left 

    expire_time = session[:expires_at] || Time.now 
    @session_time_left = (expire_time - Time.now).to_i 
end 

def update_activity_time 
    session[:expires_at] = 3.minutes.from_now 
end 
+0

Какое время для сессии здесь, пожалуйста, – Raj

+0

Вышеприведенный код не позволяет мне входить в систему. Его перенаправление на дом, когда я нажимаю на знак в – Raj

+0

, обновил ответ, пожалуйста, проверьте. –

1

Должно быть простым, добавьте это в ваш контроллер приложения

before_filter :check_session_expiry, if: proc{!resquest.url.include?('/signin')} 

def check_session_expiry 
    if !session[:expires_at].nil? and session[:expires_at] < Time.now 
    redirect_to signin_url 
    end 
    session[:expires_at] = MAX_SESSION_TIME.seconds.from_now 
end 
+0

Я пробовал это решение уже.но удачи – Raj