# 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.