Skip to main content
Version: v2.x


Session middleware for Fiber.


This middleware uses our Storage package to support various databases through a single interface. The default configuration for this middleware saves data to memory, see the examples below for other databases.


func New(config ...Config) *Store
func (s *Store) RegisterType(i interface{})
func (s *Store) Get(c *fiber.Ctx) (*Session, error)
func (s *Store) Reset() error

func (s *Session) Get(key string) interface{}
func (s *Session) Set(key string, val interface{})
func (s *Session) Delete(key string)
func (s *Session) Destroy() error
func (s *Session) Regenerate() error
func (s *Session) Save() error
func (s *Session) Fresh() bool
func (s *Session) ID() string
func (s *Session) Keys() []string

Storing interface{} values are limited to built-ins Go types.


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

import (

Then create a Fiber app with app := fiber.New().

Default Configuration

// This stores all of your app's sessions
// Default middleware config
store := session.New()

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

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

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

// Get all Keys
keys := sess.Keys()

// Delete key

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

// Save session
if err := sess.Save(); err != nil {

return c.SendString(fmt.Sprintf("Welcome %v", name))

Custom Storage/Database

You can use any storage from our storage package.

storage := sqlite3.New() // From
store := session.New(session.Config{
Storage: storage,

To use the store, see the above example.


// 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 cookie.
// Optional. Default value "".
CookieDomain string

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

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

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

// Sets the cookie SameSite attribute.
// Optional. Default value "Lax".
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,