Laravel Sanctum PHP: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Laravel Sanctum PHP: API टोकन और SPA ऑथेंटिकेशन की पूरी गाइड

1. यह क्या है और इसकी आवश्यकता क्यों है

Laravel Sanctum PHP फ्रेमवर्क Laravel के लिए एक हल्की ऑथेंटिकेशन लाइब्रेरी है, जो API-टोकन और सिंगल-पेज एप्लिकेशन (SPA) के प्रबंधन के लिए डिज़ाइन की गई है। Taylor Otwell और Laravel टीम द्वारा विकसित, Sanctum API रूट्स को सुरक्षित करने का एक सरल लेकिन शक्तिशाली तरीका प्रदान करता है, जिससे डेवलपर्स बिना जटिल कॉन्फ़िगरेशन के जल्दी से ऑथेंटिकेशन लागू कर सकते हैं, जो Passport (OAuth2) जैसे भारी समाधानों में देखने को मिलता है।

Sanctum का मुख्य उद्देश्य आधुनिक वेब डेवलपमेंट की दो प्रमुख समस्याओं को हल करना है: उसी डोमेन पर काम करने वाले SPA (सिंगल पेज एप्लिकेशन) के लिए ऑथेंटिकेशन, और मोबाइल ऐप या थर्ड-पार्टी सर्विसेज के लिए API-टोकन जारी करना। Passport के विपरीत, Sanctum पूर्ण OAuth2 प्रोटोकॉल का उपयोग नहीं करता, जिससे यह उन प्रोजेक्ट्स के लिए आदर्श विकल्प बनता है जहां जटिल एक्सेस डेलिगेशन सिस्टम की आवश्यकता नहीं है। यह SPA ऑथेंटिकेशन के लिए Laravel सेशन और API के लिए HMAC-आधारित सरल टोकन का उपयोग करता है।

यह लाइब्रेरी Laravel 8 और उससे ऊपर के संस्करणों में डिफ़ॉल्ट रूप से शामिल है, जिससे यह "बॉक्स से बाहर" उपलब्ध है। Sanctum विशेष रूप से स्टार्टअप्स, छोटी टीमों और उन प्रोजेक्ट्स के लिए उपयोगी है जहां डेवलपमेंट की गति और न्यूनतम डिपेंडेंसी महत्वपूर्ण है। यह स्वचालित रूप से टोकन की समय सीमा का प्रबंधन करता है, एक्सेस अधिकारों के बारीक नियंत्रण के लिए "एबिलिटीज" (क्षमताओं) का समर्थन करता है, और Laravel Fortify, Breeze या Jetstream के साथ आसानी से एकीकृत होता है।

2. इंस्टॉलेशन

Laravel Sanctum Composer के माध्यम से इंस्टॉल किया जाता है, जो PHP के लिए मानक पैकेज मैनेजर है। सुनिश्चित करें कि आपके पास PHP 8.0 या उससे ऊपर और Laravel 8.x/9.x/10.x/11.x इंस्टॉल है।

इंस्टॉल करने का सटीक कमांड:

composer require laravel/sanctum

इंस्टॉलेशन के बाद, कॉन्फ़िगरेशन फ़ाइल और डेटाबेस माइग्रेशन को प्रकाशित करना आवश्यक है:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

फिर personal_access_tokens टेबल बनाने के लिए माइग्रेशन चलाएं:

php artisan migrate

SPA ऑथेंटिकेशन के लिए, HTTP कर्नेल (फ़ाइल app/Http/Kernel.php) में EnsureFrontendRequestsAreStateful मिडलवेयर जोड़ना आवश्यक है:

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

साथ ही, .env फ़ाइल में अपने SPA का डोमेन निर्दिष्ट करें:

SANCTUM_STATEFUL_DOMAINS=localhost:8080

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

API-टोकन जारी करने और रूट को सुरक्षित करने का न्यूनतम उदाहरण देखते हैं।

चरण 1: User मॉडल

App\Models\User मॉडल में HasApiTokens ट्रेट का उपयोग करें:

चरण 2: टोकन जारी करने का रूट

routes/api.php में एक रूट बनाएं:

validate([
        'email' => 'required|email',
        'password' => 'required',
    ]);

    if (auth()->attempt($credentials)) {
        $user = auth()->user();
        $token = $user->createToken('api-token')->plainTextToken;
        
        return response()->json([
            'token' => $token,
            'user' => $user
        ]);
    }                    

अनुशंसाएँ