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

انتخاب یک مدیر نشست

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

بسته به نیازهای پروژه شما، استفاده از 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