https://github.com/gernest/qlstore
gorilla/sessions storage with embedded sql database( (ql)
https://github.com/gernest/qlstore
embedded-sql-database gorilla qlrace session
Last synced: 6 months ago
JSON representation
gorilla/sessions storage with embedded sql database( (ql)
- Host: GitHub
- URL: https://github.com/gernest/qlstore
- Owner: gernest
- License: mit
- Created: 2016-12-18T09:45:35.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-12-24T08:54:17.000Z (over 8 years ago)
- Last Synced: 2024-06-19T16:32:44.024Z (10 months ago)
- Topics: embedded-sql-database, gorilla, qlrace, session
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 6
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# qlstore
[](https://godoc.org/github.com/gernest/qlstore) [](https://travis-ci.org/gernest/qlstore) [](https://coveralls.io/github/gernest/qlstore?branch=master) [](https://goreportcard.com/report/github.com/gernest/qlstore)
Implements [gorilla/sessions](https://github.com/gorilla/sessions) store using embedded sql database ( [ql](https://github.com/cznic/ql))
# installation
go get github.com/gernest/qlstore
# Usage
```gopackage main
import (
"database/sql"
"log"
"net/http""github.com/gernest/qlstore"
// load ql drier
_ "github.com/cznic/ql/driver"
)var keyPair = [][]byte{
[]byte("ePAPW9vJv7gHoftvQTyNj5VkWB52mlza"),
[]byte("N8SmpJ00aSpepNrKoyYxmAJhwVuKEWZD"),
}func main() {
db, err := sql.Open("ql-mem", "testing.db")
if err != nil {
log.Fatal(err)
}// This is a convenient helper. It creates the session table if the table
// doesnt exist yet.
err = qlstore.Migrate(db)
if err != nil {
log.Fatal(err)
}store := qlstore.NewQLStore(db, "/", 2592000, keyPair...)
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// Get a session. We're ignoring the error resulted from decoding an
// existing session: Get() always returns a session, even if empty.
session, _ := store.Get(r, "session-name")
// Set some session values.
session.Values["foo"] = "bar"
session.Values[42] = 43
// Save it before we write to the response/return from the handler.
session.Save(r, w)
})
log.Fatal(http.ListenAndServe(":8090", nil))
}
```