---
name: "Catalyst::Plugin::Session::State"
section: "3pm"
platform: "linux"
package: "libcatalyst-plugin-session-perl"
version: "0.43-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::Plugin::Session::State"
---

# Catalyst::Plugin::Session::State(3pm)

Base class for session state preservation plugins.

## NAME

Catalyst::Plugin::Session::State - Base class for session state preservation plugins.

## SYNOPSIS

```
    package Catalyst::Plugin::Session::State::MyBackend;
    use base qw/Catalyst::Plugin::Session::State/;
```

## DESCRIPTION

This class doesn't actually provide any functionality, but when the `"Catalyst::Plugin::Session"` module sets up it will check to see that `"YourApp->isa("Catalyst::Plugin::Session::State")"`.

When you write a session state plugin you should subclass this module this reason only.

## WRITING STATE PLUGINS

To write a session state plugin you usually need to extend two methods:

- prepare\_(action\|cookies\|whatever)

  Set `"sessionid"` (accessor) at **prepare** time using data in the request.

  Note that this must happen **before** other `"prepare_action"` instances, in order to get along with Catalyst::Plugin::Session. Overriding `"prepare_cookies"` is probably the stablest approach.

- finalize

  Modify the response at to include the session ID if `"sessionid"` is defined, using whatever scheme you use. For example, set a cookie.
