जब भी आप किसी वेबसाइट पर लॉगिन करते हैं या कोई फॉर्म भरते हैं, तो आपकी जानकारी कुछ समय तक सुरक्षित रखी जाती है—इसे ही Session कहते हैं। Laravel Session एक powerful feature है जो user data को request के बीच store करने में मदद करता है।
अगर आप एक dynamic वेबसाइट बना रहे हैं जैसे login system, cart system या dashboard—तो Laravel Session आपके लिए बहुत जरूरी है।
Session = एक temporary “याददाश्त” जो server-side रहती है और user के browser से एक unique ID (cookie) के जरिए जुड़ी रहती है।
Laravel Session क्या है?
Laravel Session एक mechanism है जो HTTP requests के बीच user data को store और retrieve करने की सुविधा देता है।
👉 Example:
- User login details
- Shopping cart data
- Flash messages (success/error alerts)
Laravel Session कैसे काम करता है?
जब user server को request भेजता है, तो Laravel session के जरिए data store करता है और अगली request में वही data access कर सकता है।
🔄 Basic Flow:
- User request भेजता है
- Server session create करता है
- Session ID generate होती है
- Data session में store होता है
- Next request में session data access होता है
Session Configuration
Laravel में Session की configuration config/session.php file में होती है। इसके अलावा .env file में भी कुछ settings होती हैं।
// Session Driver (file, cookie, database, redis, etc.)
'driver' => env('SESSION_DRIVER', 'file'),
// Session कितनी देर तक valid रहे (minutes में)
'lifetime' => env('SESSION_LIFETIME', 120),
// Browser बंद होने पर session खत्म हो?
'expire_on_close' => false,
// Session Cookie का नाम
'cookie' => env('SESSION_COOKIE', 'laravel_session'),PHP.env file में आप इन values को override कर सकते हैं:
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_COOKIE=my_app_sessionPHPLaravel Session Drivers क्या होते हैं?
Laravel में session data अलग-अलग जगहों पर store की जा सकती है। इन्हें Drivers कहते हैं।
| Driver | Data कहाँ Store होता है | कब Use करें |
|---|---|---|
| file | storage/framework/sessions/ | Default, small apps |
| cookie | Browser cookie में (encrypted) | Simple, lightweight apps |
| database | MySQL/PostgreSQL table | Multi-server setup |
| redis | Redis cache server | High-performance apps |
| memcached | Memcached server | Fast in-memory storage |
| array | PHP array (temporary) | Testing only |
✅ Tip: Production apps के लिए redis या database driver recommend किया जाता है।

अगर आप database driver use कर रहे हैं तो यह migration run करें:
php artisan session:table
php artisan migrateBashSession Set करना (Data Store करना)
Laravel में Session set करने के तीन तरीके हैं:
Helper Function से
// Single value store करना
session(['username' => 'Vikas']);
session(['user_id' => 42]);
// Multiple values एक साथ
session([
'name' => 'Vikas Sharma',
'role' => 'admin',
'city' => 'Delhi',
]);PHPRequest Object से
use Illuminate\Http\Request;
public function store(Request $request)
{
$request->session()->put('username', 'Vikas');
$request->session()->put('cart_count', 3);
return redirect()->route('dashboard');
}PHPSession Facade से
use Illuminate\Support\Facades\Session;
Session::put('is_logged_in', true);
Session::put('user_email', 'vikas@example.com');PHPArray में Value Push करना
// 'wishlist' array में नई item add करना
$request->session()->push('wishlist', 'product_101');
$request->session()->push('wishlist', 'product_205');PHP
Session Get करना (Data पढ़ना)
Helper से
$name = session('username');
// Default value भी दे सकते हैं (अगर session न हो)
$role = session('role', 'guest');PHPRequest Object से
$username = $request->session()->get('username');
$city = $request->session()->get('city', 'Unknown');PHPसारी Session Data एक साथ
$allData = $request->session()->all();
dd($allData); // सारा session data देखेंPHP
Session Delete करना
Single Key Delete करना
$request->session()->forget('username');
// Multiple keys एक साथ delete
$request->session()->forget(['username', 'role', 'city']);PHPसारी Session Delete करना (Logout पर)
$request->session()->flush(); // सारा data हटाएंPHPSession Invalidate करना (New ID Generate करना)
public function logout(Request $request)
{
$request->session()->invalidate(); // session delete + new token
$request->session()->regenerateToken(); // CSRF token refresh
return redirect('/');
}PHPLogout पर हमेशा invalidate() और regenerateToken() दोनों call करें — यह Session Fixation attack से बचाता है।
Flash Session (एक बार की Session)
Flash Session सिर्फ एक request तक रहती है। यह mainly success/error messages के लिए use होती है — जैसे form submit होने के बाद “✅ Data saved successfully!” दिखाना।
// Controller में message store करो
public function store(Request $request)
{
// ... data save logic ...
$request->session()->flash('success', 'Profile सफलतापूर्वक update हो गई!');
$request->session()->flash('error', 'कुछ गड़बड़ हो गई, दोबारा try करें।');
return redirect()->back();
}PHPFlash को अगली Request तक Keep करना
// सारे flash data को एक request और keep करो
$request->session()->reflash();
// सिर्फ specific keys keep करो
$request->session()->keep(['success', 'error']);PHPSession Check करना
// has() — key मौजूद है AND value null नहीं है
if ($request->session()->has('user_id')) {
// user logged in है
}
// exists() — key मौजूद है (null हो तो भी true)
if ($request->session()->exists('user_id')) {
// key exist करती है
}
// missing() — key मौजूद नहीं है
if ($request->session()->missing('token')) {
// token नहीं है, redirect करो
return redirect()->route('login');
}PHPController में Real Example
एक real-world login/logout controller का example जिसमें session का पूरा उपयोग है:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class AuthController extends Controller
{
// Login करना और session set करना
public function login(Request $request)
{
$user = User::where('email', $request->email)->first();
if ($user && password_verify($request->password, $user->password)) {
$request->session()->put('user_id', $user->id);
$request->session()->put('user_name', $user->name);
$request->session()->put('user_role', $user->role);
$request->session()->flash('success', 'स्वागत है, ' . $user->name . '!');
return redirect()->route('dashboard');
}
$request->session()->flash('error', 'Email या Password गलत है।');
return redirect()->back();
}
// Logout — session clear करना
public function logout(Request $request)
{
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->route('login');
}
}PHPBlade Template में Session Use करना
Blade views में session data show करना बहुत आसान है:
{{-- Flash messages दिखाना --}}
@if (session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
@if (session('error'))
<div class="alert alert-danger">
{{ session('error') }}
</div>
@endif
{{-- Session data सीधे show करना --}}
<p>नमस्ते, {{ session('user_name', 'Guest') }}!</p>
@if (session()->has('user_id'))
<a href="/logout">Logout</a>
@else
<a href="/login">Login</a>
@endifBladeअक्सर पूछे जाने वाले सवाल (FAQ)
❓ Session और Cookie में क्या फर्क है?
Session data server पर store होती है, Cookie data browser पर। Session ज्यादा secure होती है क्योंकि sensitive data user के browser में नहीं जाता।
❓ Session का lifetime कैसे बदलें?
.env में SESSION_LIFETIME=60 set करें (minutes में)। यह value बदलने के बाद config cache clear करें: php artisan config:clear
❓ Session file कहाँ store होती है?
Default file driver use करने पर session files storage/framework/sessions/ folder में store होती हैं।
❓ forget() और flush() में क्या फर्क है?
forget() से specific key(s) delete होती हैं। flush() से पूरी session की सारी values एक साथ delete हो जाती हैं।
❓ Flash message next request में क्यों दिखता है?
Flash message redirect के बाद वाली request में show होता है। इसीलिए flash() के बाद redirect() use करते हैं — उस redirect की request में message show होगा।
Summary — एक नज़र में
🎯 Laravel Session — Quick Reference
- Session set करना:
session(['key' => 'value'])या$request->session()->put() - Session get करना:
session('key')या$request->session()->get('key', 'default') - Single key delete:
$request->session()->forget('key') - सारी session clear:
$request->session()->flush() - Flash message:
$request->session()->flash('success', '...') - Check करना:
has()— value है,exists()— key है,missing()— key नहीं - Logout:
invalidate()+regenerateToken() - Blade में:
{{ session('key') }}या@if(session()->has('key'))
Laravel Session को समझना Laravel development का एक important हिस्सा है। एक बार यह concept clear हो जाए, तो authentication, shopping cart, preferences — सब कुछ आसान हो जाता है। अभ्यास करते रहें! 🚀
Laravel Session Hindi, Laravel Session Tutorial, Laravel session set get delete, Laravel session kya hai, PHP Laravel Hindi, Laravel tutorial Hindi, web development Hindi, laravel session in hindi, laravel session tutorial, session put get laravel, laravel flash session, laravel session forget, php laravel session management, laravel session config, request session laravel, laravel session drivers

Welcome to HindiTutorials, your go-to platform for learning and mastering concepts in Hindi! Our mission is to make education accessible and simple for everyone by providing high-quality tutorials on programming, technology, and various other topics.