تو فریمورک Laravel، مدیریت session یا جلسهها یکی از ویژگیهای خیلی مهمی هست که به وبسایتها اجازه میده تا اطلاعات کاربران رو در هنگام گشت و گذار در صفحات مختلف حفظ کنن. به عبارت دیگه، وقتی یک کاربر وارد وبسایت شما میشه، میتونید اطلاعات اون مثل نام کاربری یا سبد خریدش رو در طول مرورش ذخیره کنید. در اینجا به بررسی متد StartSession::handle() خواهیم پرداخت که برای آغاز و مدیریت جلسات استفاده میشه.
متد StartSession::handle() در Laravel برای پاسخ به درخواستها و ضبط وضعیت فعلی جلسهها بسیار حیاتی هست. این متد به شما اجازه میده تا دادههای مورد نیاز کاربر رو ذخیره و مدیریت کنید. زمانی که کاربر صفحهای رو بارگذاری میکنه، این متد به صورت خودکار کار میکنه و اطلاعات مربوط به جلسه رو آماده میکنه.
از اونجایی که مدیریت جلسهها میتونه به لحاظ امنیت خیلی مهم باشه، Laravel ابزارهایی رو برای جلوگیری از حملات CSRF و مدیریت زمان انقضای جلسات فراهم کرده. این به شما اطمینان میده که هیچ شخص غیرمجاز دسترسی به دادههای کاربران نخواهد داشت.
حالا بریم یک نگاهی به کد و چگونگی استفاده از این متد بیندازیم. ما یک سناریو ساده برای کار با session میسازیم و نشون میدیم که چطور میتونید از StartSession::handle() در Laravel استفاده کنید.
// کنترلر در Laravel
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Session\SessionManager;
class UserController extends Controller
{
public function storeSession(Request $request)
{
// ذخیره اطلاعات در session
$request->session()->put('key', 'value');
return 'Session data saved!';
}
public function getSession(Request $request)
{
// خواندن اطلاعات از session
$value = $request->session()->get('key');
return 'Session value: ' . $value;
}
}
حالا که کد رو بررسی کردیم، بیایید خط به خط توضیح بدیم:
خط 1 - 3:
// کنترلر در Laravel
و سپس namespace رو تعیین میکنیم که مشخص کنه این کد به کجای پروژه تعلق داره.
خط 5:
use Illuminate\Http\Request;
و use Illuminate\Session\SessionManager;
ما به درخواست HTTP و مدیریت session نیاز داریم.
خط 7:
ساخت یک کلاس کنترلر به نام UserController
که مسئول مدیریت اطلاعات کاربر خواهد بود.
خط 9:
تابع storeSession
برای ذخیرهسازی دادهها در session ایجاد شده است. این تابع درخواست کاربر رو میگیره.
خط 11:
با $request->session()->put('key', 'value');
دادهای به عنوان مثال ذخیره میکنیم.
خط 13:
تابع getSession
برای خواندن اطلاعات از session ایجاد شده است.
خط 15:
با $request->session()->get('key');
اطلاعات ذخیره شده رو فراخوانی میکنیم.
خط 17:
نتیجه رو به کاربر نشان میدهیم.