تکنولوژی نوین اینترنتی
Passport یک بسته قدرتمند لاراول است که برای احراز هویت APIها از طریق OAuth2 استفاده میشود. این بسته به شما این امکان را میدهد که به راحتی APIهای خود را ایمن کرده و از روشهای مختلف احراز هویت مانند توکنهای دسترسی (Access Tokens) و تجدید توکنها (Refresh Tokens) بهرهبرداری کنید. در ادامه، نحوه استفاده از Laravel Passport برای احراز هویت API را شرح خواهیم داد.
برای استفاده از Passport در لاراول، ابتدا باید آن را نصب کنید. برای این کار مراحل زیر را دنبال کنید:
نصب بسته Passport: برای نصب Passport، دستور زیر را در ترمینال اجرا کنید:
اجرای دستورات مایگریشن: پس از نصب، دستورات مایگریشنی که برای ایجاد جداول لازم برای OAuth2 در پایگاه داده مورد نیاز است، اجرا کنید:
انتشار فایلهای تنظیمات: پس از مایگریشنی که انجام شد، شما باید فایلهای تنظیمات Passport را منتشر کنید:
این دستور، توکنهای استفادهشده برای احراز هویت را ایجاد میکند و کلیدهای خصوصی و عمومی لازم برای OAuth2 را تولید میکند.
برای اینکه Passport بتواند به درستی در لاراول کار کند، باید مدل User خود را تغییر دهید تا از HasApiTokens استفاده کند. این کار به مدل شما اجازه میدهد تا توکنهای API را ایجاد و مدیریت کند.
افزودن HasApiTokens
به مدل User:
در فایل app/Models/User.php
، باید HasApiTokens
را از Laravel Passport وارد کنید:
برای استفاده از Passport در لاراول، باید تنظیمات احراز هویت را بهروزرسانی کنید تا از گارد api استفاده کند.
بهروزرسانی فایل config/auth.php:
به فایل config/auth.php
بروید و گارد api
را به passport
تغییر دهید:
حالا که همه چیز آماده است، میتوانیم از Passport برای ساخت و استفاده از توکنهای دسترسی استفاده کنیم.
ایجاد توکن دسترسی (Access Token):
برای ایجاد توکن دسترسی، ابتدا باید یک روت POST برای احراز هویت و گرفتن توکن ایجاد کنید. در اینجا یک مثال از استفاده از Passport برای ایجاد توکن دسترسی است:
در فایل routes/api.php
یک روت جدید برای لاگین و دریافت توکن اضافه کنید:
در AuthController، متدی برای لاگین و ایجاد توکن اضافه کنید:
این متد createToken
توکنی ایجاد میکند که با استفاده از آن میتوان به API دسترسی پیدا کرد.
برای محافظت از روتها و اطمینان از اینکه کاربران باید ابتدا وارد سیستم شوند، میتوانید از میانه auth:api استفاده کنید. این میانه بررسی میکند که آیا درخواست حاوی یک توکن معتبر است یا خیر.
محافظت از روتها با میانه auth:api:
در فایل routes/api.php
، روتهایی که میخواهید حفاظت شوند را بهصورت زیر تعریف کنید:
در اینجا، روت /user
تنها برای کاربرانی که توکن معتبر دارند قابل دسترسی است.
برای احراز هویت طولانی مدت و تجدید توکنها، میتوانید از Refresh Tokens استفاده کنید. در Passport، هنگامی که توکن دسترسی منقضی میشود، میتوانید از توکن تازه (refresh token) برای دریافت توکن جدید استفاده کنید.
گرفتن و استفاده از Refresh Token:
برای این کار ابتدا باید روش احراز هویت از نوع password grant را پیکربندی کنید، که در آن یک refresh token برای دریافت توکن جدید ارسال میشود.
Passport ابزاری بسیار مفید برای احراز هویت APIهای لاراول است که با استفاده از OAuth2، امنیت بالایی را برای APIهای شما فراهم میآورد. این بسته به شما این امکان را میدهد که از توکنهای دسترسی و تجدید توکنها استفاده کرده و به راحتی از APIهای خود محافظت کنید.
با دنبال کردن مراحل نصب، پیکربندی و استفاده از Passport، میتوانید به سادگی سیستم احراز هویت خود را برای APIهای لاراول راهاندازی کنید.