تکنولوژی نوین اینترنتی
JSON Web Token (JWT) یک استاندارد امن برای انتقال اطلاعات به صورت JSON بین طرفین است. این اطلاعات میتوانند به هر شکلی باشند، به عنوان مثال اطلاعات کاربری یا دسترسیهای یک کاربر. در لاراول، معمولاً از JWT برای پیادهسازی سیستمهای احراز هویت استفاده میشود.
در این مقاله، نحوه پیادهسازی و استفاده از JWT برای احراز هویت در لاراول را بررسی خواهیم کرد.
برای شروع، باید یک پکیج برای JWT در لاراول نصب کنید. یکی از محبوبترین پکیجها برای این کار، پکیج tymon/jwt-auth است که به شما اجازه میدهد تا به راحتی JWT را در پروژه لاراول خود پیادهسازی کنید.
از دستور زیر برای نصب پکیج استفاده کنید:
بعد از نصب پکیج، شما باید چندین مرحله تنظیمات را انجام دهید.
برای انتشار فایل تنظیمات JWT، دستور زیر را اجرا کنید:
این دستور فایل پیکربندی config/jwt.php را در پروژه شما ایجاد میکند.
برای اینکه JWT به درستی کار کند، باید یک کلید خصوصی ایجاد کنید. برای این کار از دستور زیر استفاده کنید:
این دستور یک کلید تصادفی به فایل .env شما اضافه میکند تا برای تولید توکنهای JWT از آن استفاده شود.
برای استفاده از JWT در لاراول، باید مدل User را بهطور خاص برای استفاده از JWT تنظیم کنید.
در فایل app/Models/User.php، کلاس User را به صورت زیر تغییر دهید:
حالا نیاز داریم که یک کنترلر برای احراز هویت کاربران ایجاد کنیم. این کنترلر وظیفه ایجاد توکن JWT و تایید توکنهای ارسالی را بر عهده خواهد داشت.
از دستور زیر برای ساخت یک کنترلر احراز هویت استفاده کنید:
در کنترلر جدید خود، متدهایی برای ورود کاربر و ایجاد توکن اضافه کنید:
برای دسترسی به این متدها، باید روترهای مناسب را در فایل routes/api.php تعریف کنید.
لاراول یک middleware به نام auth:api دارد که میتوانید برای احراز هویت کاربران از آن استفاده کنید. این middleware بررسی میکند که درخواست حاوی یک توکن معتبر باشد یا نه.
همچنین، میتوانید در فایل config/auth.php گزینه guards را تنظیم کنید که از JWT برای احراز هویت استفاده کند:
برای آزمایش سیستم JWT، ابتدا باید وارد سیستم شوید تا توکن JWT دریافت کنید.
درخواست POST به /login با اطلاعات کاربری ارسال کنید.
در پاسخ، توکنی از نوع JWT دریافت خواهید کرد.
برای دسترسی به اطلاعات کاربری، توکن دریافتی را در هدر درخواست بهعنوان Authorization قرار دهید.
سپس با ارسال درخواست به /user، اطلاعات کاربر در پاسخ دریافت خواهید کرد.
استفاده از JSON Web Token (JWT) برای احراز هویت در لاراول به شما این امکان را میدهد که به راحتی سیستمهای احراز هویت امن و مقیاسپذیر بسازید. با استفاده از پکیج tymon/jwt-auth و چند مرحله تنظیمات ساده، میتوانید توکنهای JWT را برای کاربران خود ایجاد کرده و از آنها برای دسترسی به منابع محافظتشده استفاده کنید.