Oturum

Oturum middleware, Fiber framework'ü için oturum yönetimi için kullanılır.

Not: Bu middleware, çeşitli veritabanlarını birleşik bir arayüz aracılığıyla desteklemek için Storage paketimizi kullanmaktadır. Bu middleware'in varsayılan yapılandırması verileri bellekte depolar. Diğer veritabanı örnekleri için lütfen aşağıdaki örnekleri inceleyin.

İmza

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

Not: "interface{}" değerlerin depolanması, yerleşik Go tipleri ile sınırlıdır.

Örnek

Fiber Web framework için middleware paketini içe aktarın.

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

Fiber uygulamasını başlatıktan sonra, aşağıdaki özellikleri kullanabilirsiniz:

// Varsayılan yapılandırma ile başlat
// Bu, tüm uygulama oturumlarını depolar
store := session.New()

app.Get("/", func(c *fiber.Ctx) error {
    // Depodan oturumu al
    sess, err := store.Get(c)
    if err != nil {
        panic(err)
    }

    // Değeri al
    name := sess.Get("name")

    // Anahtar/değer ayarla
    sess.Set("name", "john")

    // Tüm anahtarları al
    keys := sess.Keys()

    // Anahtarı sil
    sess.Delete("name")

    // Oturumu sonlandır
    if err := sess.Destroy(); err != nil {
        panic(err)
    }

    // Bu oturum için belirli bir son kullanma süresi ayarlayın
    sess.SetExpiry(time.Second * 2)

    // Oturumu kaydet
    if err := sess.Save(); err != nil {
        panic(err)
    }

    return c.SendString(fmt.Sprintf("Hoş geldiniz %v", name))
})

Yapılandırma

Özellik Tür Açıklama Varsayılan
Süre Bitimi time.Duration İzin verilen oturum süresi 24 * time.Hour
Depolama fiber.Storage Oturum verilerini depolamak için depolama arayüzü memory.New()
Anahtar Arayışı string Anahtar Arama isteğinden oturum kimliğini çıkarmak için ":" gibi bir dize "cookie:session_id"
Çerez Alanı string Çerezin etki alanı ""
Çerez Yolu string Çerezin yolu ""
Çerez Güvenliği bool Çerezin güvenli olup olmadığı false
ÇerezSadeceHTTP bool Çerezin yalnızca HTTP olup olmadığı false
AynıSiteÇerezi string SameSite çerez değeri "Lax"
YalnızcaOturumÇerezi bool Çerezin yalnızca tarayıcı oturumları için geçerli olup olmadığını belirler. True olarak ayarlanırsa, Süre Bitim değerini yoksayar false
AnahtarOluşturucu func() string Oturum anahtarı oluşturur utils.UUIDv4
ÇerezAdı (Eskimiş) string Eskimiş: KeyLookup kullanın. Oturumun adı ""

Varsayılan Yapılandırma

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

Sabitler

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

Özel depolama/veritabanı

storage paketimizden herhangi bir depolamayı kullanabilirsiniz.

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