3

Ich verwende das restful_authentication Plugin für meine Login-Seite. Das Problem ist, dass, nachdem ich mich als Benutzer angemeldet habe, ich nie ausgeloggt werde, bis ich mich abmelde. Wie stelle ich ein Sitzungszeitlimit von 15 Minuten ein? Zum Beispiel, nach 15 Minuten, wenn ich auf irgendeine Seite gehe, sollte ich auf die Anmeldeseite umgeleitet werden.Ruby on Rails und restful_authentication plugin

Antwort

3

Sie können Sitzungsablaufzeiten in der Datei config/intialisers/session_store.rb in Rails 2.3 konfigurieren.

Fügen Sie einfach die folgende Option:

:expire_after => 60.minutes 

Alternativ können Sie die folgenden durch die Verwendung in einem before_filter Ablaufzeiten pro Controller/Aktion ändern:

request.session_options = request.session_options.dup 
request.session_options[:expire_after] = 5.minutes 
request.session_options.freeze 

Diese Anweisungen wurden gefunden: http://squarewheel.pl/posts/3 , die auch eine Verbindung zu einem Plugin für Schienen hat < 2.3.

+0

Ich beziehe mich tatsächlich auf die restful_authentication Plugin bei http://github.com/technoweenie/restful-authentication/Baum/Master. Wenn ich die Cookies in 15 Minuten ablaufen lassen möchte, wo kann ich sie einstellen? Muss ich etwas auf authenticated_system.rb setzen? – Max

0

Beachten Sie, dass dies nur die Ablaufzeit des Cookies einstellt, nicht die abgelaufene Sitzungsablaufzeit (zumindest mit dem Plugin, das ich für Rails geschrieben habe < 2.3). Um Letzteres zu erreichen, müssen Sie Ihr eigenes before_filter implementieren, das einen Zeitstempel in der Sitzung überprüft und ihn verwirft, wenn die Zeit über dem zulässigen Grenzwert liegt. Auch hier überprüfte ich nicht, ob das für> = 2,3

0

in Ihrem application.rb benötigt wird:

before_filter :update_activity_time, :except => [:login, :logout] 

    def update_activity_time 
    session[:expires_at] = 60.minutes.from_now #default 60 
    end