Advertisement
Google Ad Slot: content-top
Laravel Session
What is a Session?
A Session in Laravel is a way to store user data across multiple requests.
Since HTTP is stateless, sessions help in remembering data like login information, shopping cart items, preferences, etc., until the user closes the browser or logs out.
👉 Example: When a user logs in, their user ID is stored in the session so they stay logged in across different pages.
Session Configuration
Sessions are configured in config/session.php.
Important options:
driver→ how session is stored (file, database, cache, cookie).lifetime→ how long (in minutes) a session lasts.expire_on_close→ whether to expire when browser closes.encrypt→ whether to encrypt session data.
Example (.env):
SESSION_DRIVER=file SESSION_LIFETIME=120
Session Drivers in Laravel
Laravel supports different storage drivers for sessions:
- file – default, stores sessions in
storage/framework/sessions. - cookie – stores sessions inside encrypted cookies.
- database – stores sessions in DB table (
sessions). - redis – stores in Redis (fast, scalable).
- memcached – for caching systems.
- array – stores only for current request (useful for testing).
👉 Use php artisan session:table to create a sessions table for database driver.
Basic Session
web.php (routes\web.php)
Route::get('/session_store', function () {
session(['user_name' => 'john']); // Store user name in session
return "Session Stored";
});
Route::get('/session_get', function () {
return session('user_name'); // Get user name from session
});
Route::get('/session_clear', function () {
session()->forget('user_name'); // Remove user name from session
return "Session Removed";
});
Output Store Session
Output Get Session
Output Remove Session
How to Use Session in Laravel
1. Store Data in Session
session(['user_id' => 1]); // Store user id session(['username' => 'John']); // Store name
OR
$request->session()->put('user_id', 1);
2. Get Data from Session
$userId = session('user_id');
$username = $request->session()->get('username');
3. Check if Data Exists
if ($request->session()->has('user_id')) {
// User is logged in
}
4. Remove Data
$request->session()->forget('user_id'); // remove one key
$request->session()->flush(); // remove all session data
5. Regenerate Session ID
To prevent session fixation attacks:
$request->session()->regenerate();
Flash Data (Temporary Session)
Flash data only lasts for the next request (useful for messages after redirect).
Example:
$request->session()->flash('status', 'Profile updated successfully!');
In Blade:
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif