Categorygithub.com/go-session/session/v3
modulepackage
3.2.1
Repository: https://github.com/go-session/session.git
Documentation: pkg.go.dev

# README

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

# Functions

Destroy a session.
FromReqContext returns the Request value stored in ctx, if any.
FromResContext returns the ResponseWriter value stored in ctx, if any.
Initialize the global session management instance.
Create a session management instance.
Create a new session storage (memory).
Refresh and return session storage.
Set the cookie expiration time (in seconds).
Set the cookie name.
Set the domain name of the cookie.
Enable writing session id to cookie (enabled by default, can be turned off if no cookie is written).
Allow session id to be obtained from the request header.
Allow session id from URL query parameters (enabled by default).
Set session expiration time (in seconds).
Set SameSite attribute of the cookie.
Set cookie security.
Set callback function to generate session id.
The key name in the request header where the session ID is stored (if it is empty, the default is the cookie name).
Set the session id signature value.
Set session management storage.
Start a session and return to session storage.

# Constants

Version # of session.

# Variables

No description provided by the author

# Structs

A session management instance, including start and destroy operations.

# Interfaces

Management of session storage, including creation, update, and delete operations.
A session id storage operation.

# Type aliases

Define the handler to get the session id.
No description provided by the author