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