# NAME

HTTP::Session - simple session

# SYNOPSIS

   use HTTP::Session;

   my $session = HTTP::Session->new(
       store   => HTTP::Session::Store::Memcached->new(
           memd => Cache::Memcached->new({
               servers => ['127.0.0.1:11211'],
           }),
       ),
       state   => HTTP::Session::State::Cookie->new(
           name => 'foo_sid'
       ),
       request => $c->req,
   );

# DESCRIPTION

Yet another session manager.

easy to integrate with [PSGI](https://metacpan.org/pod/PSGI) =)

# METHODS

- my $session = HTTP::Session->new(store => $store, state => $state, request => $req)

   This method creates new instance of HTTP::Session.

   `store` is instance of HTTP::Session::Store::\*.

   `state` is instance of HTTP::Session::State::\*.

   `request` is duck typed object.`request` object should have `header`, `address`, `param`.
   You can use PSGI's $env instead.

- $session->html\_filter($html)

   filtering HTML

- $session->redirect\_filter($url)

   filtering redirect URL

- $session->header\_filter($res)

   filtering header

- $session->response\_filter($res)

   filtering response. this method runs html\_filter, redirect\_filter and header\_filter.

   $res should be PSGI's response array, instance of [HTTP::Response](https://metacpan.org/pod/HTTP::Response), or [HTTP::Engine::Response](https://metacpan.org/pod/HTTP::Engine::Response).

- $session->keys()

   keys of session.

- $session->get(key)

   get session item

- $session->set(key, val)

   set session item

- $session->remove(key)

   remove item.

- $session->as\_hashref()

   session as hashref.

- $session->expire()

   expire the session

- $session->regenerate\_session\_id(\[$delete\_old\])

   regenerate session id.remove old one when $delete\_old is true value.

- $session->finalize()

   commit the session data.

# CLEANUP SESSION

Some storage doesn't care the old session data.Please call $store->cleanup( $min ); manually.

# AUTHOR

Tokuhiro Matsuno <tokuhirom AAJKLFJEF GMAIL COM>

# THANKS TO

   kazuhooku
   amachang
   walf443
   yappo
   nekokak

# REPOSITORY

I use github.
repo url is here [http://github.com/tokuhirom/http-session/tree/master](http://github.com/tokuhirom/http-session/tree/master)

# SEE ALSO

[Catalyst::Plugin::Session](https://metacpan.org/pod/Catalyst::Plugin::Session), [Sledge::Session](https://metacpan.org/pod/Sledge::Session)

# LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.