SessionLifetime is a plugin which allows you to set a lifetime on your session. You can set it to expire the session 1 hour after the last activity.
class ApplicationController << ActionController::Base expires_session end
Or you can give some options:
-
:time - After how much time of inactivity should the session be invalidated. Default is 1 hour
-
:redirect_to - Where should we redirect the user to once their session has expired
-
:on_expiry - Takes a Proc or a lamba which gives you a callback after the session invalidation. This is useful for setting a flash message or something in the database.
class ApplicationController << ActionController::Base
expires_session :time => 2.hours, :redirect_to => '/login', :on_expiry => lambda { flash[:notice] = "Your session has been expired, and you have been logged out." }
end
If you want a controller not to have expiring_session you can use skip_before_filter
:
class SessionController << ApplicationController skip_before_filter :check_session_lifetime, :only => [:new, :create] end
I wrote this plugin to solve the problems I had with default Rails session handling. If you have an additional need which you think would be great for this plugin, give me a shout at [email protected], or through GitHub, and I’ll be more then happy to implement your proposal.
Copyright © 2008 Jan De Poorter, released under the MIT license