NAME

Dancer::Session::ElasticSearch - ElasticSearch based session engine for Dancer

SYNOPSIS

This module implements a session engine storing session variables in an ElasticSearch index. It also signs IDs to thwart tampering and guessing, and will automatically create the ES index if it doesn't exist yet.

USAGE

In config.yml

session:       "ElasticSearch"
session_options:
  connection:
                                  # passed directly to ElasticSearch
  index: "my_index"               # ES index to use. defaults to "session"
  type:  "my_session"             # defaults to "session"
  signing:
      secret: "ldjaldjaklsdanm.m" # required for signing IDs
      length: 10                  # length of salt and hash. defaults to 10
  ttl: 1d                         # used if we create the index. defaults 1d.

As this is ElasticSearch you can set a ttl on the documents when you create your ES index and let it do the work for you. Or let this package create the index and it will be set up with a default ttl for you.

METHODS

create()

Creates a new session. Returns the session object.

flush()

Write the session to ES. Returns the session object.

retrieve($id)

Look for a session with the given id.

Returns the session object if found, undef if not.

destroy()

Remove the current session object from ES

INTERNAL METHODS

_es

Connect to ElasticSearch and returns a handle

init

Overload the init method in Dancer::Session::Abstract to not create an ID as we will use the ElasticSearch ID instead.

_verify($string)

Verifies a signed ID

_sign($id)

Signs an ID

_hash($id, $salt)

Creates a hash from the $id, $salt and secret key as found in the config

FORK ME

Fork a copy for yourself from https://github.com/babf/Dancer-Session-ElasticSearch

SEE ALSO

Dancer, Dancer::Session