सत्र

सत्र मिडलवेयर, फाइबर फ़्रेमवर्क के लिए सत्र प्रबंधन के लिए उपयोग किया जाता है।

नोट: इस मिडलवेयर को समर्थित करने के लिए हमारे स्टोरेज पैकेज का उपयोग वारिस इंटरफ़ेस के माध्यम से विभिन्न डेटाबेस का समर्थन करता है। इस मिडलवेयर के डिफ़ॉल्ट विन्यास में डेटा को मेमोरी में स्टोर किया जाता है। अन्य डेटाबेस के उदाहरणों के लिए कृपया निम्नलिखित उदाहरणों को देखें।

हस्ताक्षर

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{}" मानों के स्टोरेज की सीमा निर्धारित गो टाइप्स तक ही है।

उदाहरण

फाइबर वेब फ़्रेमवर्क के लिए मिडलवेयर पैकेज इम्पोर्ट करें।

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

फाइबर ऍप्लिकेशन को प्रारंभ करने के बाद, आप निम्नलिखित सुविधाओं का उपयोग कर सकते हैं।

// डिफ़ॉल्ट विन्यास के साथ आरंभ करें
// यह आपके सभी ऍप्लिकेशन सत्र स्टोर करता है
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))
})

विन्यास

संपत्ति प्रकार विवरण डिफ़ॉल्ट
समाप्ति time.Duration सत्र की अनुमत समयावधि 24 * time.Hour
स्टोरेज fiber.Storage सत्र डेटा संग्रह करने के लिए स्टोरेज इंटरफ़ेस memory.New()
कुंजीदर्शन string कुंजीदर्शन बराबरी से सत्र आईडी को अनुरोध से निकालने के लिए ":" जैसा एक स्ट्रिंग "cookie:session_id"
कुकी डोमेन string कुकी का डोमेन ""
कुकी पथ string कुकी का पथ ""
कुकी सुरक्षित bool क्या कुकी सुरक्षित है false
कुकी HTTP केवल bool क्या कुकी केवल HTTP है false
कुकी सेम-साइट string सेम-साइट कुकी का मान "Lax"
कुकी सत्र केवल bool यह निर्धारित करता है कि क्या कुकी केवल ब्राउज़र सत्रों के लिए मान्य है। यदि true में सेट किया गया है, तो यह "samapti" का मूल्य नजरअंदाज करता है false
कुंजी जेनरेटर func() string कुंजीजेनरेटर सत्र की कुंजी जनरेट करता है utils.UUIDv4
कुकी नाम (पुराना) string पुराना: कुंजीदर्शन का उपयोग करें। सत्र का नाम ""

डिफ़ॉल्ट विन्यास

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