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