1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-25 00:24:38 +00:00
2020-11-23 08:44:34 +01:00
..
2020-11-13 18:30:14 +01:00
2020-11-16 14:22:44 +01:00
2020-11-16 14:22:44 +01:00
2020-11-14 03:14:06 +01:00
2020-11-16 14:22:44 +01:00
2020-11-17 08:15:22 +01:00
2020-11-23 08:44:34 +01:00

Session

Session middleware for Fiber

Table of Contents

Signatures

func New(config ...Config) fiber.Handler

Examples

Import the middleware package that is part of the Fiber web framework

import (
  "github.com/gofiber/fiber/v2"
  "github.com/gofiber/fiber/v2/middleware/session"
)

After you initiate your Fiber app, you can use the following possibilities:

// Default middleware config
store := session.New()

// This panic will be catch by the middleware
app.Get("/", func(c *fiber.Ctx) error {
	// get session from storage
	sess, err := store.Get(c)
	if err != nil {
		panic(err)
	}

	// save session
	defer sess.Save()

	// Get value
	name := sess.Get("name")

	// Set key/value
	sess.Set("name", "john")

	// Delete key
	sess.Delete("name")

	// Destry session
	if err := sess.Destroy(); err != nil {
		panic(err)
	}

	return fmt.Fprintf(ctx, "Welcome %v", name)
})

Config

// Config defines the config for middleware.
type Config struct {
	// Allowed session duration
	// Optional. Default value 24 * time.Hour
	Expiration time.Duration

	// Storage interface to store the session data
	// Optional. Default value memory.New()
	Storage fiber.Storage

	// Name of the session cookie. This cookie will store session key.
	// Optional. Default value "session_id".
	CookieName string

	// Domain of the CSRF cookie.
	// Optional. Default value "".
	CookieDomain string

	// Path of the CSRF cookie.
	// Optional. Default value "".
	CookiePath string

	// Indicates if CSRF cookie is secure.
	// Optional. Default value false.
	CookieSecure bool

	// Indicates if CSRF cookie is HTTP only.
	// Optional. Default value false.
	CookieHTTPOnly bool

	// Indicates if CSRF cookie is HTTP only.
	// Optional. Default value false.
	CookieSameSite string

	// KeyGenerator generates the session key.
	// Optional. Default value utils.UUID
	KeyGenerator func() string
}

Default Config

var ConfigDefault = Config{
	Expiration:   24 * time.Hour,
	CookieName:   "session_id",
	KeyGenerator: utils.UUID,
}