...

Source file src/github.com/antonlindstrom/pgstore/examples/sessions.go

Documentation: github.com/antonlindstrom/pgstore/examples

     1  package examples
     2  
     3  import (
     4  	"log"
     5  	"net/http"
     6  	"time"
     7  
     8  	"github.com/antonlindstrom/pgstore"
     9  )
    10  
    11  // ExampleHandler is an example that displays the usage of PGStore.
    12  func ExampleHandler(w http.ResponseWriter, r *http.Request) {
    13  	// Fetch new store.
    14  	store, err := pgstore.NewPGStore("postgres://user:password@127.0.0.1:5432/database?sslmode=verify-full", []byte("secret-key"))
    15  	if err != nil {
    16  		log.Fatalf(err.Error())
    17  	}
    18  	defer store.Close()
    19  
    20  	// Run a background goroutine to clean up expired sessions from the database.
    21  	defer store.StopCleanup(store.Cleanup(time.Minute * 5))
    22  
    23  	// Get a session.
    24  	session, err := store.Get(r, "session-key")
    25  	if err != nil {
    26  		log.Fatalf(err.Error())
    27  	}
    28  
    29  	// Add a value.
    30  	session.Values["foo"] = "bar"
    31  
    32  	// Save.
    33  	if err = session.Save(r, w); err != nil {
    34  		log.Fatalf("Error saving session: %v", err)
    35  	}
    36  
    37  	// Delete session.
    38  	session.Options.MaxAge = -1
    39  	if err = session.Save(r, w); err != nil {
    40  		log.Fatalf("Error saving session: %v", err)
    41  	}
    42  }
    43  

View as plain text