সeshion

সেশন মিডলওয়্যারের ব্যবহার ফাইবার ফ্রেমওয়ার্ক এর জন্য সেশন পরিচালনা করার জন্য ব্যবহৃত হয়।

নোট: এই মিডলওয়্যার বিভিন্ন ডাটাবেসকে একটি সংগঠিত ইন্টারফেসের মাধ্যমে সাপোর্ট করার জন্য আমাদের স্টোরেজ প্যাকেজটি ব্যবহার করে। এই মিডলওয়্যারের ডিফল্ট কনফিগারেশনটি মেমোরিতে ডেটা সংরক্ষণ করে। অন্যান্য ডাটাবেসের উদাহরণের জন্য দয়া করে নীচের উদাহরণগুলি দেখুন।

স্বাক্ষর

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{}" মানের সংরক্ষণটি সীমিত হয় গড়ে ওয়ারা Go টাইপগুলির মধ্যে।

উদাহরণ

ফাইবার ওয়েব ফ্রেমওয়ার্কের জন্য মিডলওয়ের প্যাকেজ আমদানি করুন।

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

ফাইবার অ্যাপ্লিকেশন আপনি ইনিশিয়ালাইজ করার পরে আপনি নিম্নলিখিত বৈশিষ্ট্যগুলি ব্যবহার করতে পারেনঃ

// ডিফল্ট কনফিগারেশনের সাথে ইনিশিয়ালাইজ করুন
// এটা সমস্ত আপনার অ্যাপ্লিকেশনের সেশনগুলি সংরক্ষণ করে
স্টোর := 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")

    // সেশন ধ্বংস করুন
    যদি এরর := sess.Destroy(); এরর != nil {
        panic(err)
    }

    // এই সেশনের জন্য একটি নির্ধারিত মেয়াদ সময় সেট করুন
    sess.SetExpiry(time.Second * 2)

    // সেশন সংরক্ষণ করুন
    যদি এরর := sess.Save(); এরর != nil {
        panic(err)
    }

    return c.SendString(fmt.Sprintf("Welcome %v", name))
})

কনফিগারেশন

বৈশিষ্ট্য ধরন বর্ণনা ডিফল্ট
মেয়াদ time.Duration অনুমোদিত সেশন সময়কাল 24 * time.Hour
স্টোরেজ fiber.Storage সেশন ডেটা সংরক্ষণের জন্য স্টোরেজ ইন্টারফেস memory.New()
KeyLookup string অনুরোধ থেকে সেশন ID বের করার জন্য একটি স্ট্রিং "cookie:session_id"
কুকির ডোমেইন string কুকির ডোমেইন ""
কুকির পাথ string কুকির পাথ ""
কুকির সিকিউর bool কুকি নিরাপত্তা কি না false
কুকির এইচটিটিপূর্ণ bool কুকি কেবলমাত্র এইচটিটিপূর্ণ কি না false
কুকির সমানসাইট string সমানসাইট কুকির মান "Lax"
কুকি সেশনসম্পর্কিত শুধুমাত্র bool কুকিটি শুধুমাত্র ব্রাউজার সেশনের জন্য বৈধ কি না। যদি true হয়, তবে এটি মেয়াদ মোছা গিয়ে যাবে। false
KeyGenerator func() string সেশন কী তৈরি করে 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 := sqlite3.New() // From github.com/gofiber/storage/sqlite3
store := session.New(session.Config{
    Storage: storage,
})