Let's Go حالت‌دار HTTP › انتخاب یک مدیر جلسه
قبلی · فهرست · بعدی
فصل ۸.۱.

انتخاب یک مدیر جلسه (Choosing a Session Manager)

در این بخش، نحوه انتخاب یک مدیر جلسه (Session Manager) مناسب را بررسی می‌کنیم. یک مدیر جلسه خوب باید قابلیت‌های ذخیره‌سازی (Storage)، امنیت (Security) و مقیاس‌پذیری (Scalability) مناسبی داشته باشد.

برای پروژه ما، از پکیج alexedwards/scs (SCS Package) استفاده خواهیم کرد که یک مدیر جلسه (Session Manager) سبک و امن است. این پکیج از کوکی‌های امن (Secure Cookies) برای ذخیره‌سازی جلسه (Session Storage) استفاده می‌کند.

هنگام کار با جلسات، ملاحظات امنیتی زیادی وجود دارد و پیاده‌سازی صحیح آن‌ها کار ساده‌ای نیست. مگر اینکه واقعاً نیاز به پیاده‌سازی خودتان داشته باشید، بهتر است از یک بسته شخص ثالث موجود و تست شده استفاده کنید.

پیشنهاد می‌کنم بسته gorilla/sessions یا alexedwards/scs را بسته به نیاز پروژه‌تان استفاده کنید.

به طور خلاصه، اگر می‌خواهید داده‌های جلسه را در سمت کلاینت در یک کوکی ذخیره کنید، gorilla/sessions انتخاب خوبی است، اما در غیر این صورت alexedwards/scs به دلیل قابلیت تجدید شناسه‌های جلسه به طور کلی گزینه بهتری است.

برای این پروژه، ما قبلاً یک پایگاه داده MySQL راه‌اندازی کرده‌ایم، بنابراین تصمیم گرفتیم از alexedwards/scs استفاده کنیم و داده‌های جلسه را در سمت سرور در MySQL ذخیره کنیم.

اگر شما هم در حال دنبال کردن هستید، مطمئن شوید که در دایرکتوری پروژه‌تان هستید و بسته‌های لازم را به این صورت نصب کنید:

$ go get github.com/alexedwards/scs/v2@v2
go: downloading github.com/alexedwards/scs/v2 v2.8.0
go get: added github.com/alexedwards/scs/v2 v2.8.0

$ go get github.com/alexedwards/scs/mysqlstore@latest
go: downloading github.com/alexedwards/scs/mysqlstore v0.0.0-20240316133359-d7ab9d9831ec
go get: added github.com/alexedwards/scs/mysqlstore v0.0.0-20240316133359-d7ab9d9831ec

واژه‌نامه اصطلاحات فنی

اصطلاح فارسی معادل انگلیسی توضیح
مدیر جلسه Session Manager نرم‌افزار مدیریت جلسات کاربران
ذخیره‌سازی Storage محل نگهداری داده‌های جلسه
امنیت Security حفاظت از داده‌ها و جلسات
مقیاس‌پذیری Scalability قابلیت رشد و گسترش سیستم
پکیج alexedwards/scs SCS Package کتابخانه مدیریت جلسه در Go
کوکی‌های امن Secure Cookies کوکی‌های رمزنگاری شده
ذخیره‌سازی جلسه Session Storage محل نگهداری داده‌های جلسه
رمزنگاری Encryption محافظت از داده‌ها با کدگذاری
احراز هویت Authentication تأیید هویت کاربران
مدیریت خطا Error Handling مدیریت خطاهای جلسه