セッション
セッションミドルウェアは、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,
})