Laravel Session क्या है? Best #1 Laravel Tutorial Hindi

जब भी आप किसी वेबसाइट पर लॉगिन करते हैं या कोई फॉर्म भरते हैं, तो आपकी जानकारी कुछ समय तक सुरक्षित रखी जाती है—इसे ही 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:

  1. User request भेजता है
  2. Server session create करता है
  3. Session ID generate होती है
  4. Data session में store होता है
  5. 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_session
PHP

Laravel Session Drivers क्या होते हैं?

Laravel में session data अलग-अलग जगहों पर store की जा सकती है। इन्हें Drivers कहते हैं।

DriverData कहाँ Store होता हैकब Use करें
filestorage/framework/sessions/Default, small apps
cookieBrowser cookie में (encrypted)Simple, lightweight apps
databaseMySQL/PostgreSQL tableMulti-server setup
redisRedis cache serverHigh-performance apps
memcachedMemcached serverFast in-memory storage
arrayPHP array (temporary)Testing only

✅ Tip: Production apps के लिए redis या database driver recommend किया जाता है।

Laravel Session Drivers

अगर आप database driver use कर रहे हैं तो यह migration run करें:

php artisan session:table
php artisan migrate
Bash

Session 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',
]);
PHP

Request 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');
}
PHP

Session Facade से

use Illuminate\Support\Facades\Session;

Session::put('is_logged_in', true);
Session::put('user_email', 'vikas@example.com');
PHP

Array में 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');
PHP

Request 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 हटाएं
PHP

Session Invalidate करना (New ID Generate करना)

public function logout(Request $request)
{
    $request->session()->invalidate();       // session delete + new token
    $request->session()->regenerateToken(); // CSRF token refresh

    return redirect('/');
}
PHP

Logout पर हमेशा 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();
}
PHP

Flash को अगली Request तक Keep करना

// सारे flash data को एक request और keep करो
$request->session()->reflash();

// सिर्फ specific keys keep करो
$request->session()->keep(['success', 'error']);
PHP

Session 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');
}
PHP

Controller में 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');
    }
}
PHP

Blade 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>
@endif
Blade

अक्सर पूछे जाने वाले सवाल (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 में क्यों दिखता है?

personalizeme.in

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

error: Content is protected!! You are not allowed to copy.