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,
})