📜 مقدمهای بر JSON Web Token (JWT) در لاراول
JSON Web Token (JWT) یک استاندارد امن برای انتقال اطلاعات به صورت JSON بین طرفین است. این اطلاعات میتوانند به هر شکلی باشند، به عنوان مثال اطلاعات کاربری یا دسترسیهای یک کاربر. در لاراول، معمولاً از JWT برای پیادهسازی سیستمهای احراز هویت استفاده میشود.
در این مقاله، نحوه پیادهسازی و استفاده از JWT برای احراز هویت در لاراول را بررسی خواهیم کرد.
1. 🛠 نصب پکیج JWT برای لاراول
برای شروع، باید یک پکیج برای JWT در لاراول نصب کنید. یکی از محبوبترین پکیجها برای این کار، پکیج tymon/jwt-auth است که به شما اجازه میدهد تا به راحتی JWT را در پروژه لاراول خود پیادهسازی کنید.
نصب پکیج:
از دستور زیر برای نصب پکیج استفاده کنید:
2. ⚙️ تنظیمات پکیج JWT در لاراول
بعد از نصب پکیج، شما باید چندین مرحله تنظیمات را انجام دهید.
انتشار فایل پیکربندی:
برای انتشار فایل تنظیمات JWT، دستور زیر را اجرا کنید:
این دستور فایل پیکربندی config/jwt.php را در پروژه شما ایجاد میکند.
3. 🔑 ساخت کلید خصوصی JWT
برای اینکه JWT به درستی کار کند، باید یک کلید خصوصی ایجاد کنید. برای این کار از دستور زیر استفاده کنید:
این دستور یک کلید تصادفی به فایل .env شما اضافه میکند تا برای تولید توکنهای JWT از آن استفاده شود.
4. 🧑💻 استفاده از JWT در مدل User
برای استفاده از JWT در لاراول، باید مدل User را بهطور خاص برای استفاده از JWT تنظیم کنید.
در فایل app/Models/User.php، کلاس User را به صورت زیر تغییر دهید:
5. 📝 ساخت کنترلر احراز هویت
حالا نیاز داریم که یک کنترلر برای احراز هویت کاربران ایجاد کنیم. این کنترلر وظیفه ایجاد توکن JWT و تایید توکنهای ارسالی را بر عهده خواهد داشت.
ایجاد کنترلر:
از دستور زیر برای ساخت یک کنترلر احراز هویت استفاده کنید:
افزودن متدهای کنترلر:
در کنترلر جدید خود، متدهایی برای ورود کاربر و ایجاد توکن اضافه کنید:
6. 🛤 تعریف روترها
برای دسترسی به این متدها، باید روترهای مناسب را در فایل routes/api.php تعریف کنید.
7. 🛡 استفاده از Middleware برای احراز هویت
لاراول یک middleware به نام auth:api دارد که میتوانید برای احراز هویت کاربران از آن استفاده کنید. این middleware بررسی میکند که درخواست حاوی یک توکن معتبر باشد یا نه.
همچنین، میتوانید در فایل config/auth.php گزینه guards را تنظیم کنید که از JWT برای احراز هویت استفاده کند:
8. 🔒 آزمایش JWT در Postman
برای آزمایش سیستم JWT، ابتدا باید وارد سیستم شوید تا توکن JWT دریافت کنید.
-
درخواست
POSTبه/loginبا اطلاعات کاربری ارسال کنید. -
در پاسخ، توکنی از نوع JWT دریافت خواهید کرد.
-
برای دسترسی به اطلاعات کاربری، توکن دریافتی را در هدر درخواست بهعنوان
Authorizationقرار دهید.
سپس با ارسال درخواست به /user، اطلاعات کاربر در پاسخ دریافت خواهید کرد.
نتیجهگیری
استفاده از JSON Web Token (JWT) برای احراز هویت در لاراول به شما این امکان را میدهد که به راحتی سیستمهای احراز هویت امن و مقیاسپذیر بسازید. با استفاده از پکیج tymon/jwt-auth و چند مرحله تنظیمات ساده، میتوانید توکنهای JWT را برای کاربران خود ایجاد کرده و از آنها برای دسترسی به منابع محافظتشده استفاده کنید.