1. Welcome
  2. Getting Started [+/-]
    1. Installing from RubyGems
    2. Installing from GitHub.com
    3. Installing with Sake
  3. The Basics [+/-]
    1. Hello World
      1. Application Generation Options
    2. Paths
    3. Environments
    4. Rake
  4. Configuration [+/-]
    1. Configatron
    2. Initializers
      1. Gems
      2. Mime-Types
  5. Routing [+/-]
    1. Default Routes
    2. Named Routes
    3. RESTful/Resource Routes
    4. Nested Resource Routes
    5. Regex Routes
    6. Wildcard Routes
    7. Blocks in Routes
    8. Redirecting
    9. Error Handling
    10. Deferred? Routes
    11. Misc. Routing
  6. Controllers [+/-]
    1. Actions
    2. Headers/Status
    3. Handling Content Types
    4. Filters
    5. Helpers
    6. Layouts
    7. Tell Messaging
    8. Redirecting
    9. Rendering
      1. Engines
        1. Erubis
        2. XML Builder
        3. Extending
          1. Case Study: PDF Writer
      2. Types
        1. :action
        2. :text
        3. :inline
        4. :xml
        5. :url
        6. :partial
        7. :template
        8. :public
        9. Extending
          1. Case Study: PDF Writer
  7. Views [+/-]
    1. Helpers
    2. Layouts
    3. Assets Host
    4. Assets Management
    5. Form Builders
  8. Sessions [+/-]
    1. Session Store API
  9. Request/Response [+/-]
    1. Cookies
  10. Testing [+/-]
    1. RSpec
    2. Test::Unit::TestCase
  11. Porlets [+/-]
    1. Developing
    2. Testing
    3. Packaging
    4. Using
  12. Plugins [+/-]
    1. Extending
      1. Case Study: PDF Writer
  13. Deploying [+/-]
    1. Thin
    2. Passenger (mod_rails)
    3. Joyent Accelerator
  14. Mack More [+/-]
    1. mack-active_record
    2. mack-asset_packager
    3. mack-caching
    4. mack-data_factory
    5. mack-data_mapper
    6. mack-distributed
    7. mack-encryption
    8. mack-facets
    9. mack-haml
    10. mack-javascript
    11. mack-localization
    12. mack-markaby
    13. mack-notifier
    14. mack-orm
    15. mack-pdf_writer
  15. Rails to Mack Cheat Sheet
  16. Contributing
  17. APIs [+/-]

Sessions

The default session store for Mack applications is Mack::SessionStore::Cookie. This uses encrypted cookies to store the session. If the session cookie can't be decrypted it will be deleted and a new session will be started.

There are 3 parameters that govern sessions as a whole in Mack, and one one that governs the cookie session store.

# This should be set by your application so that ALL instances of your application are using
# the same secret key. If you do not set it a random key will be generated each time you start
# your application.
configatron.default_secret_key

# This sets which session store you would like to use, :cookie, is the default.
configatron.mack.session_store

# True/False turns on/off sessions for your entire Mack application, true is the default.
configatron.mack.use_sessions

# Sets the expiry time of the cookie. The default is 4 hours.
configatron.mack.cookie_session_store.expiry_time

The session can be retrieved off of the Mack::Request class, like such:

request.session # => Mack::Session

In controllers and views it can be retrieved with the session method.

The Mack::Session behaves slightly like a Hash attributes can be set and retrieved on the session like such:

@user = User.new(:id => 1)
session[:user_id] = @user.id
session[:user_id] # => 1
This guide was written for Mack version 0.8.2