Gorilla's Session store implementation with MongoDB
Depends on the mgo library.
For the latest go version, run:
go get github.com/laziness-coders/mongostore
For the go version 1.20 and under, run:
go get github.com/laziness-coders/mongostore@v0.0.6
Available on godoc.org.
func foo(rw http.ResponseWriter, req *http.Request) {
// Fetch new store..
client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
panic(err)
}
if err := client.Connect(context.Background()); err != nil {
panic(err)
}
defer client.Disconnect(context.Background())
// Get a session.
store := NewMongoStore(
client.Database("test").Collection("test_session"),
3600,
false,
[]byte("secret-key"),
)
// Add a value.
session.Values["foo"] = "bar"
// Save.
if err = sessions.Save(req, rw); err != nil {
log.Printf("Error saving session: %v", err)
}
fmt.Fprintln(rw, "ok")
}