راهنمای جامع Passport لاراول؛ امنیت کامل APIهای شما
فریمورک محبوب لاراول ابزارهای قدرتمندی دارد. این ابزارها برای مدیریت ورود و خروج کاربران هستند. روشهایی مثل Session یا File بسیار پرکاربرد هستند. اما دنیای امروز به سمت اپلیکیشنها رفته است. اپلیکیشنهای موبایل ساختار متفاوتی دارند. در این حالت روشهای سنتی پاسخگو نیستند. 🚀
برای حل این مشکل، لاراول راهکار ویژهای دارد. ابزار Passport از نسخه ۵.۳ معرفی شد. این ابزار از پروتکل OAuth2 پشتیبانی میکند. با کمک آن میتوانید APIهای خود را ایمن کنید. این مقاله راهنمای کامل شماست.
چرا باید از Passport لاراول استفاده کنیم؟ 🛡️
در توسعه وب مدرن، امنیت حرف اول را میزند. سیستمهای قدیمی مبتنی بر کوکی محدودیت دارند. آنها برای درخواستهای بیندامنی (Cross-Domain) مناسب نیستند. اما پاسپورت بر پایه توکن (Token) کار میکند.
وقتی کاربر وارد میشود، یک توکن میگیرد. این توکن مانند کلید ورود عمل میکند. در هر درخواست، این کلید بررسی میشود. با این روش، امنیت دادهها تضمین خواهد شد. همچنین مدیریت دسترسیها بسیار دقیقتر انجام میگیرد.
مزیتها و ویژگیهای کلیدی 🌟
استفاده از پاسپورت مزایای زیادی برای توسعهدهنده دارد. در اینجا به برخی از مهمترین آنها اشاره میکنیم:
- ✅ استاندارد جهانی: بر پایه پروتکل امن OAuth2 ساخته شده است.
- ✅ مدیریت آسان توکن: امکان صدور و ابطال راحت توکنها را دارد.
- ✅ امنیت بالا: از کلیدهای رمزنگاری برای تولید توکن استفاده میکند.
- ✅ پشتیبانی از Scope: میتوانید سطح دسترسیهای مختلف تعریف کنید.
- ✅ مناسب برای موبایل: بهترین گزینه برای اپلیکیشنهای اندروید و iOS است.
کاربردهای اصلی پاسپورت در پروژهها ⚙️
این ابزار در سناریوهای مختلفی کاربرد دارد. دانستن این موارد به شما در طراحی کمک میکند:
- 📦 اتصال اپلیکیشن موبایل: احراز هویت کاربران در اپلیکیشنهای نیتیو.
- 📦 پروژههای Single Page: مدیریت ورود در فرانتاندهای مدرن مثل Vue یا React.
- 📦 سرویسهای شخص ثالث: اجازه دسترسی به سایر برنامهها برای استفاده از دیتای شما.
مراحل نصب و پیکربندی Passport 📦
برای شروع کار باید پکیج مربوطه را نصب کنید. این کار با Composer انجام میشود. مراحل زیر را به ترتیب دنبال کنید.
ابتدا دستور زیر را در ترمینال اجرا نمایید:
composer require laravel/passport
سپس باید ارائه دهنده سرویس را ثبت کنید. به فایل config/app.php بروید. کد زیر را در بخش Providers قرار دهید:
Laravel\Passport\PassportServiceProvider::class,
حالا زمان اجرای Migrationها رسیده است. جداول مورد نیاز باید ساخته شوند. دستور زیر را بزنید:
php artisan migrate
در نهایت، برای تولید کلیدهای امنیتی دستور زیر را اجرا کنید:
php artisan passport:install
تنظیمات مدل کاربر و سرویسدهنده 🛠️
حالا باید مدل User را آماده کنید. تریت HasApiTokens را به کلاس اضافه نمایید. این کار اجازه صدور توکن را میدهد.
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}
سپس در فایل AuthServiceProvider.php تغییرات را اعمال کنید. کد زیر را در متد boot بنویسید:
Passport::routes();
در مرحله آخر، در فایل config/auth.php درایور را تغییر دهید. مقدار driver در بخش API باید passport باشد.
نحوه پیادهسازی متدهای ورود و ثبتنام
برای مدیریت کاربران نیاز به کنترلر دارید. ابتدا مسیرهای لازم را تعریف کنید. این مسیرها در routes/api.php قرار میگیرند. 📝
Route::post('register', [UserController::class, 'register']);
Route::post('login', [UserController::class, 'login']);
Route::group(['middleware' => 'auth:api'], function(){
Route::post('details', [UserController::class, 'details']);
});
مراحل ثبتنام در سامانه 🌐
برای استفاده از خدمات اختصاصی ما، ثبتنام الزامی است. شما میتوانید از لینک زیر استفاده کنید. فرآیند ثبتنام بسیار ساده و سریع است.
- ✨ ابتدا به آدرس p.api.ir مراجعه کنید.
- ✨ فرم مربوط به اطلاعات کاربری را تکمیل نمایید.
- ✨ ایمیل تاییدیه خود را فعال کنید.
- ✨ حالا میتوانید از تمامی امکانات پنل استفاده کنید.

پیادهسازی منطق کنترلر
در کنترلر، عملیات ثبتنام و ورود را بنویسید. در متد ورود، باید اعتبار سنجی انجام شود. اگر اطلاعات صحیح بود، توکن صادر میشود. این توکن به کلاینت ارسال خواهد شد. کلاینت باید آن را ذخیره کند. در درخواستهای بعدی، توکن در Header ارسال میشود. 🔑
نمونه کد متد Login:
public function login(Request $request) {
if(Auth::attempt(['email' => $request->email, 'password' => $request->password])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')->accessToken;
return response()->json(['success' => $success], 200);
}
return response()->json(['error'=>'عدم دسترسی'], 401);
}
تست API با استفاده از Postman 🚀
بعد از کدنویسی، نوبت به تست میرسد. نرمافزار Postman بهترین ابزار برای این کار است. آدرس API خود را در آن وارد کنید.
دقت کنید که Header درخواست مهم است. حتماً Accept: application/json را اضافه کنید. برای مسیرهای محافظت شده، از تب Authorization استفاده کنید. نوع آن را روی Bearer Token قرار دهید. توکنی که هنگام لاگین گرفتید را آنجا وارد کنید. اگر همه چیز درست باشد، اطلاعات کاربر نمایش داده میشود.
نتیجه
در این مقاله با Passport لاراول آشنا شدیم. این ابزار امنیت APIها را تضمین میکند. استفاده از استاندارد OAuth2 اعتبار پروژه را بالا میبرد. نصب و راهاندازی آن بسیار ساده است. با این روش، اپلیکیشنهای شما حرفهایتر عمل میکنند. 💎
آیا در پیادهسازی پاسپورت با مشکلی روبرو شدید؟ نظرات و سوالات خود را در بخش پایین بنویسید. کارشناسان ما به سرعت به شما پاسخ میدهند. همچنین میتوانید مقالات دیگر ما در مورد امنیت لاراول را مطالعه کنید.
