Sitzung
Das Session-Middleware wird für das Fiber-Framework zur Sitzungsverwaltung verwendet.
Hinweis: Diese Middleware verwendet unser Storage-Paket, um durch eine einheitliche Schnittstelle verschiedene Datenbanken zu unterstützen. Die Standardkonfiguration dieser Middleware speichert Daten im Speicher. Weitere Beispiele für andere Datenbanken finden Sie in den folgenden Beispielen.
Signatur
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
Hinweis: Die Speicherung von "interface{}"-Werten ist auf die integrierten Go-Typen beschränkt.
Beispiel
Importieren Sie das Middleware-Paket für das Fiber-Webframework.
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/session"
)
Nachdem die Fiber-Anwendung initialisiert wurde, können die folgenden Funktionen verwendet werden:
// Mit Standardkonfiguration initialisieren
// Hiermit werden alle Anwendungssitzungen gespeichert
store := session.New()
app.Get("/", func(c *fiber.Ctx) error {
// Sitzung aus dem Speicher abrufen
sess, err := store.Get(c)
if err != nil {
panic(err)
}
// Wert abrufen
name := sess.Get("name")
// Schlüssel/Wert setzen
sess.Set("name", "john")
// Alle Schlüssel abrufen
keys := sess.Keys()
// Schlüssel löschen
sess.Delete("name")
// Sitzung zerstören
if err := sess.Destroy(); err != nil {
panic(err)
}
// Ein spezifisches Ablaufdatum für diese Sitzung festlegen
sess.SetExpiry(time.Second * 2)
// Sitzung speichern
if err := sess.Save(); err != nil {
panic(err)
}
return c.SendString(fmt.Sprintf("Willkommen %v", name))
})
Konfiguration
Eigenschaft | Typ | Beschreibung | Standard |
---|---|---|---|
Ablauf | time.Duration |
Erlaubte Sitzungsdauer | 24 * time.Hour |
Speicher | fiber.Storage |
Speicherschnittstelle zur Speicherung von Sitzungsdaten | memory.New() |
KeyLookup | string |
KeyLookup ist ein String wie ": ", um die Sitzungs-ID aus der Anfrage zu extrahieren |
"cookie:session_id " |
CookieDomain | string |
Domain des Cookies | "" |
CookiePath | string |
Pfad des Cookies | "" |
CookieSecure | bool |
Ob das Cookie sicher ist | false |
CookieHTTPOnly | bool |
Ob das Cookie nur für HTTP ist | false |
CookieSameSite | string |
Wert des SameSite-Cookies | "Lax " |
CookieSessionOnly | bool |
Bestimmt, ob das Cookie nur für Browsersitzungen gültig ist. Wenn auf true gesetzt, ignoriert es den Wert von Ablauf | false |
KeyGenerator | func() string |
KeyGenerator generiert einen Sitzungsschlüssel | utils.UUIDv4 |
CookieName (veraltet) | string |
Veraltet: Verwenden Sie KeyLookup. Name der Sitzung | "" |
Standardkonfiguration
var ConfigDefault = Config{
Ablauf: 24 * time.Hour,
KeyLookup: "cookie:session_id",
KeyGenerator: utils.UUIDv4,
Quelle: "cookie",
sessionName: "session_id",
}
Konstanten
const (
QuelleCookie Source = "cookie"
QuelleHeader Source = "header"
QuelleURLQuery Source = "query"
)
Benutzerdefinierter Speicher/Datenbank
Sie können jeden Speicher aus unserem storage-Paket verwenden.
speicher := sqlite3.New() // Von github.com/gofiber/storage/sqlite3
store := session.New(session.Config{
Storage: speicher,
})