DefV / session_lifetime

A Rails plugin for expiring sessions on inactivity

This URL has Read+Write access

commit  7b05b08bb418856e823c55e90f070876afe03b07
tree    abc731b5cee1cbf96aa68798d987a9cbf465e14f
parent  5deed5cd7a3f2173d667a837187794fe6e808baf
name age message
file .gitignore Loading commit data...
file MIT-LICENSE
file README.rdoc
file init.rb
directory lib/
README.rdoc

SessionLifetime

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.

Example

  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

Missing something?

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 sessionlifetime@defv.be, or through GitHub, and I’ll be more then happy to implement your proposal.

Copyright © 2008 Jan De Poorter, released under the MIT license