برنامه نویسی

چگونه لاراول به نشانه های دسترسی تولید می کند

نشانه های دسترسی بخش مهمی از برنامه های وب مدرن است ، به خصوص در مورد احراز هویت API. لاراول ، یکی از محبوب ترین چارچوب های PHP ، ابزارهای قوی برای تولید و مدیریت نشانه های دسترسی را فراهم می کند. این که آیا شما در حال ساختن یک سرور پیچیده OAUTH2 هستید یا یک سیستم احراز هویت مبتنی بر توکن ، Laravel شما را تحت پوشش قرار داده است گذرنامه وت پناهگاهبشر

در این مقاله ، ما بررسی خواهیم کرد که چگونه لاراول به نشانه های دسترسی ، تفاوت بین گذرنامه و پناهگاه و نحوه اجرای آنها در برنامه شما تولید می کند.


نشانه های دسترسی چیست؟

نشانه های دسترسی رشته هایی هستند که نمایانگر مجوز کاربر برای دسترسی به منابع خاص هستند. آنها معمولاً در API ها برای تأیید اعتبار درخواست ها استفاده می شوند. هنگامی که یک کاربر به مشتری دسترسی پیدا می کند یا به مشتری دسترسی پیدا می کند ، سرور یک نشانه دسترسی ایجاد می کند ، که مشتری سپس در درخواست های بعدی برای اثبات هویت خود در آن حضور دارد.

لاراول روند تولید و مدیریت نشانه های دسترسی را از طریق دو بسته اصلی ساده می کند: گذرنامه وت پناهگاهبشر


1. تولید نشانه های دسترسی با گذرنامه لاراول

گذرنامه Laravel یک اجرای کامل سرور OAUTH2 است. این ایده آل برای برنامه هایی است که به سناریوهای احراز هویت پیچیده ، مانند دسترسی به API شخص ثالث یا سیستم های چند مشتری نیاز دارند.

مراحل تولید نشانه های دسترسی با گذرنامه

مرحله 1: گذرنامه را نصب کنید

برای شروع ، گذرنامه را از طریق آهنگساز نصب کنید:

composer require laravel/passport
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: مهاجرت را اجرا کنید

گذرنامه برای ذخیره نشانه ها و مشتری های OAUTH2 به میزهای پایگاه داده نیاز دارد. مهاجرت ها را برای ایجاد این جداول اجرا کنید:

php artisan migrate
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 3: گذرنامه را نصب کنید

کلیدهای رمزگذاری را تولید کنید و با اجرای آن اعتبار مشتری ایجاد کنید:

php artisan passport:install
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور ایجاد می کند client_id وت client_secret جفت برای برنامه شما

مرحله 4: احراز هویت API را پیکربندی کنید

در شما AuthServiceProvider، مسیرهای گذرنامه را ثبت کنید:

use Laravel\Passport\Passport;

public function boot()
{
    $this->registerPolicies();

    Passport::routes();
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 5: شماره های دسترسی را صادر کنید

برای صدور یک نشانه دسترسی ، درخواست پست را به /oauth/token نقطه پایانی با پارامترهای زیر:

  • grant_type: نوع کمک هزینه (به عنوان مثال ، passwordبا client_credentials).
  • client_id: شناسه مشتری که توسط گذرنامه ایجاد می شود.
  • client_secret: راز مشتری که توسط گذرنامه ایجاد می شود.
  • username: ایمیل یا نام کاربری کاربر.
  • password: رمز عبور کاربر.
  • scope: دامنه های اختیاری برای نشانه.

درخواست مثال:

{
    "grant_type": "password",
    "client_id": "client-id",
    "client_secret": "client-secret",
    "username": "user@example.com",
    "password": "password",
    "scope": ""
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله ششم: توکن را دریافت کنید

سرور با یک نشانه دسترسی و یک نشانه تازه پاسخ می دهد:

{
    "token_type": "Bearer",
    "expires_in": 3600,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni...",
    "refresh_token": "def50200e3b8a1a3c2c7d5e6f7a8b9c..."
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


2. تولید نشانه های دسترسی با Laravel Sanctum

Laravel Sanctum یک بسته سبک وزن است که برای احراز هویت ساده مبتنی بر توکن طراحی شده است. این مناسب برای برنامه های تک صفحه ای (SPA) ، برنامه های تلفن همراه یا احراز هویت اصلی API است.

مراحل تولید نشانه های دسترسی با Sanctum

مرحله 1: Sanctum را نصب کنید

Sanctum را از طریق آهنگساز نصب کنید:

composer require laravel/sanctum
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: مهاجرت را اجرا کنید

Sanctum برای ذخیره نشانه های API به یک جدول پایگاه داده نیاز دارد. برای ایجاد این جدول ، مهاجرت ها را اجرا کنید:

php artisan migrate
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 3: Sanctum را پیکربندی کنید

وسط Sanctum را به خود اضافه کنید api گروه میان افزار در app/Http/Kernel.php:

use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;

'api' => [
    EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 4: شماره های دسترسی را صادر کنید

پس از تأیید اعتبار کاربر (به عنوان مثال ، از طریق ورود به سیستم) ، از createToken روش تولید نشانه:

use Illuminate\Support\Facades\Auth;

$user = Auth::user();
$token = $user->createToken('token-name')->plainTextToken;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 5: نشانه را دریافت کنید

در createToken روش یک متن متن ساده را برمی گرداند:

{
    "token": "1|abcdef1234567890..."
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


تفاوت های کلیدی بین گذرنامه و پناهگاه

نشان گذرنامه پناهگاه
مورد استفاده اجرای کامل OAUTH2 نویسنده سبک وزن
پیچیدگی مناسب برای سیستم های پیچیده ساده و آسان برای استفاده
مدیریت از دامنه ها پشتیبانی می کند ، نشانه های تازه را تازه می کند مدیریت اصلی توکن
عمل به دلیل OAuth2 کمی سنگین تر سبک و سریع
ایده آل برای دسترسی API شخص ثالث اسپا ، برنامه های تلفن همراه ، API های ساده

ابطال نشانه ها

  • گذرنامه: توکن ها را می توان با استفاده از revoke روش یا با حذف آنها از پایگاه داده.
  • پناهگاه: نشانه ها را می توان با حذف آنها از personal_access_tokens جدول

پایان

لاراول تولید و مدیریت نشانه های دسترسی برای تأیید اعتبار API را آسان می کند ، خواه به اجرای کامل OAUTH2 با گذرنامه یا یک راه حل سبک وزن با Sanctum نیاز داشته باشید. با رعایت مراحل ذکر شده در این مقاله ، می توانید احراز هویت مبتنی بر توکن را در برنامه Laravel خود پیاده سازی کنید.

انتخاب کردن گذرنامه برای سناریوهای پیچیده oauth2 و پناهگاه برای احراز هویت مبتنی بر توکن ساده تر. هر دو ابزار قدرتمند هستند و یکپارچه با لاراول ادغام می شوند و اطمینان می دهند که برنامه شما ایمن و مقیاس پذیر است.

برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا