---
name: "Jifty::Web::Session::JDBI"
section: "3pm"
platform: "linux"
package: "libjifty-perl"
version: "1.10518+dfsg-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Jifty::Web::Session::JDBI"
---

# Jifty::Web::Session::JDBI(3pm)

A Jifty session handler

## NAME

Jifty::Web::Session - A Jifty session handler

## SYNOPSIS

In your *etc/config.yml* (optional):

```
  framework:
    Web:
      # The default ($PORT is replaced by the port the app is running on)
      SessionCookieName: JIFTY_SID_$PORT
```

### new

Returns a new, empty session.

### id

Returns the session's id if it has been loaded, or `"undef"` otherwise.

### create

Creates a new row in the Jifty::Model::Session table.

### load \[ID\]

Load up the current session from the given `"ID"`, or the appropriate cookie (see "cookie\_name") otherwise.  If both of those fail, creates a session in the database.

### load\_by\_kv key =\> value

Load up the current session from the given (key, value) pair. If no matching session could be found, it will create a new session with the key, value set. Be sure that what you're loading by is unique. If you're loading a session based on, say, a timestamp, then you're asking for trouble.

### get KEY \[TYPE\]

Returns the value for `"KEY"` for the current user's session.  `"TYPE"`, which defaults to "key", allows accessing of other namespaces in the session, including "metadata" and "continuation".

### set KEY =\> VALUE, \[TYPE\]

Sets the value `"VALUE"` for `"KEY"` for the session.  `"TYPE"`, which defaults to "key", allows values to be set in other namespaces, including "metadata" and "continuation". `"VALUE"` can be an arbitrary perl data structure -- `"Jifty::Web::Session"` will serialize it for you.

### remove KEY, \[TYPE\]

Remove key `"KEY"` from the cache.  `"TYPE"` defaults to "key".

### remove\_all

Removes the session from the database entirely.

### continuations

Return a hash of all the continuations in this session, keyed by the continuations' `"id"`.
