セッション

セッションミドルウェアは、Fiberフレームワークでセッション管理に使用されます。

注:このミドルウェアは、統一されたインターフェースを介してさまざまなデータベースをサポートするために、当社のStorageパッケージを使用します。このミドルウェアのデフォルト構成ではデータがメモリに保存されます。他のデータベースの例については、以下の例を参照してください。

シグネチャ

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

注: "interface {}"値の保存は、組込みのGoタイプに制限されます。

Fiber Webフレームワークのミドルウェアパッケージをインポートします。

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

Fiberアプリケーションを初期化した後、以下の機能を使用できます。

// デフォルト構成で初期化
// これにより、すべてのアプリケーションセッションが保存されます
store := session.New()

app.Get("/", func(c *fiber.Ctx) error {
    // ストレージからセッションを取得
    sess, err := store.Get(c)
    if err != nil {
        panic(err)
    }

    // 値を取得
    name := sess.Get("name")

    // キー/値を設定
    sess.Set("name", "john")

    // すべてのキーを取得
    keys := sess.Keys()

    // キーを削除
    sess.Delete("name")

    // セッションを破棄
    if err := sess.Destroy(); err != nil {
        panic(err)
    }

    // このセッションに特定の有効期限を設定
    sess.SetExpiry(time.Second * 2)

    // セッションを保存
    if err := sess.Save(); err != nil {
        panic(err)
    }

    return c.SendString(fmt.Sprintf("ようこそ %v さん", name))
})

構成

プロパティ 説明 デフォルト
Expiration time.Duration セッションの有効期間 24 * time.Hour
Storage fiber.Storage セッションデータを保存するためのストレージインターフェース memory.New()
KeyLookup string セッションIDをリクエストから取得するための文字列 ":" "cookie:session_id"
CookieDomain string クッキーのドメイン ""
CookiePath string クッキーのパス ""
CookieSecure bool クッキーがセキュアかどうか false
CookieHTTPOnly bool クッキーがHTTP専用かどうか false
CookieSameSite string SameSiteクッキーの値 "Lax"
CookieSessionOnly bool クッキーがブラウザセッションのみ有効かどうか。trueに設定すると、Expirationの値を無視します false
KeyGenerator func() string セッションキーを生成するKeyGenerator関数 utils.UUIDv4
CookieName (deprecated) string 廃止予定: KeyLookupを使用してください。セッションの名前 ""

デフォルト構成

var ConfigDefault = Config{
    Expiration:   24 * time.Hour,
    KeyLookup:    "cookie:session_id",
    KeyGenerator: utils.UUIDv4,
    source:       "cookie",
    sessionName:  "session_id",
}

定数

const (
    SourceCookie   Source = "cookie"
    SourceHeader   Source = "header"
    SourceURLQuery Source = "query"
)

カスタムストレージ/データベース

storageパッケージから任意のストレージを使用できます。

storage := sqlite3.New() // github.com/gofiber/storage/sqlite3から
store := session.New(session.Config{
    Storage: storage,
})