top
(README.md)
# pgstore

A session store backend for [gorilla/sessions](http://www.gorillatoolkit.org/pkg/sessions) - [src](https://github.com/gorilla/sessions).

## Installation

    make get-deps

## Documentation

Available on [godoc.org](http://www.godoc.org/github.com/antonlindstrom/pgstore).

See http://www.gorillatoolkit.org/pkg/sessions for full documentation on underlying interface.

### Example

    // Fetch new store.
    store := NewPGStore("postgres://user:password@127.0.0.1:5432/database?sslmode=verify-full", []byte("secret-key"))
    defer store.Close()

    // Get a session.
    session, err = store.Get(req, "session-key")
    if err != nil {
        log.Error(err.Error())
    }

    // Add a value.
    session.Values["foo"] = "bar"

    // Save.
    if err = sessions.Save(req, rsp); err != nil {
        t.Fatalf("Error saving session: %v", err)
    }

    // Delete session.
    session.Options.MaxAge = -1
    if err = sessions.Save(req, rsp); err != nil {
        t.Fatalf("Error saving session: %v", err)
    }

## Thanks

I've stolen, borrowed and gotten inspiration from the other backends available:

* [redistore](https://github.com/boj/redistore)
* [mysqlstore](https://github.com/srinathgs/mysqlstore)
* [babou dbstore](https://github.com/drbawb/babou/blob/master/lib/session/dbstore.go)

Thank you all for sharing your code!

What makes this backend different is that it's for Postgresql and uses the fine
datamapper [Gorp](https://github.com/coopernurse/gorp).
Make sure you use a somewhat new codebase of Gorp as it now defaults to text for
strings when it used to default to varchar 255. Varchar 255 is unfortunately too
small.

Imported by 2 package(s)

  1. github.com/jawr/wall/rest
  2. github.com/jawr/wall/rest/auth

Imports 4 package(s)

  1. github.com/coopernurse/gorp
  2. github.com/gorilla/securecookie
  3. github.com/gorilla/sessions
  4. github.com/lib/pq