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

نشانه های دسترسی بخش مهمی از برنامه های وب مدرن است ، به خصوص در مورد احراز هویت 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 و پناهگاه برای احراز هویت مبتنی بر توکن ساده تر. هر دو ابزار قدرتمند هستند و یکپارچه با لاراول ادغام می شوند و اطمینان می دهند که برنامه شما ایمن و مقیاس پذیر است.
برنامه نویسی مبارک!