Skip to content

go-session/session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

02e6830 · Feb 13, 2023

History

51 Commits
Dec 9, 2021
Jun 11, 2020
Apr 23, 2018
Dec 9, 2021
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Dec 9, 2021
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023
Feb 13, 2023

Repository files navigation

session

A efficient, safely and easy-to-use session library for Go.

Build Codecov ReportCard GoDoc License

Quick Start

Download and install

go get -v github.com/go-session/session/v3

Create file server.go

package main

import (
	"context"
	"fmt"
	"net/http"

	session "github.com/go-session/session/v3"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		store, err := session.Start(context.Background(), w, r)
		if err != nil {
			fmt.Fprint(w, err)
			return
		}

		store.Set("foo", "bar")
		err = store.Save()
		if err != nil {
			fmt.Fprint(w, err)
			return
		}

		http.Redirect(w, r, "/foo", 302)
	})

	http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) {
		store, err := session.Start(context.Background(), w, r)
		if err != nil {
			fmt.Fprint(w, err)
			return
		}

		foo, ok := store.Get("foo")
		if ok {
			fmt.Fprintf(w, "foo:%s", foo)
			return
		}
		fmt.Fprint(w, "does not exist")
	})

	http.ListenAndServe(":8080", nil)
}

Build and run

go build server.go
./server

Open in your web browser

http://localhost:8080

    foo:bar

Features

  • Easy to use
  • Multi-storage support
  • Multi-middleware support
  • More secure, signature-based tamper-proof
  • Context support
  • Support request header and query parameters

Store Implementations

Middlewares

MIT License

Copyright (c) 2021 Lyric