Session

Session کا وسیطہ Fiber framework میں سیشن کی منصوبہ بندی کے لیے استعمال ہوتا ہے۔

نوٹ: یہ وسیطہ ہمارے 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{}" قیمتوں کا ذخیرہ بندی شدہ ، گو کی تعین شدہ ٹائپس تک محدود ہے۔

مثال

Fiber ویب فریم ورک کے لئے وسیطے پیکیج کو درآمد کریں۔

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 KeyLookup ایک سٹرنگ ہے جیسے ":" جو درخواست سے سیشن آئی ڈی کو نکالتا ہے "cookie:session_id"
CookieDomain string کوکی کا ڈومین ""
CookiePath string کوکی کا راستہ ""
CookieSecure bool کیا کوکی محفوظ ہے false
CookieHTTPOnly bool کیا کوکی صرف HTTP ہے false
CookieSameSite string SameSite کوکی کی قیمت "Lax"
CookieSessionOnly bool کوکی صرف براؤزر سیشنز کے لئے درست ہے. اگر ٹھیک ہو تو یہ 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 پیکیج سے کوئی بھی اسٹوریج استعمال کرسکتے ہیں۔

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