Token Scopes
Scopeها به کلاینت های API اجازه میدهند هنگام درخواست مجوز برای دسترسی به یک حساب، مجموعه خاصی از مجوزها را درخواست کنند. به عنوان مثال، اگر در حال ایجاد یک برنامه تجارت الکترونیک هستید، نیازی نیست که همه کلاینتهای API بتوانند سفارشی را ثبت کنند در عوض ممکن است اجازه دسترسی به وضعیت حمل و نقل سفارش را به تعدادی از کلاینتها بدهید. به عبارت دیگر، Scopeها اجازه میدهند تا کاربران برنامه شما، عملیات یک برنامه شخص ثالث یا third-party را محدود کنند.
نکته: بین کنترل دسترسی Role-Based با OAuth2 Scopes تفاوتی وجود دارد. بزرگترین تفاوت بین این دو، زمینه ای است که به آن اِعمال میشوند. کنترل دسترسی Role-Based (RBAC) ، دسترسی یک کاربر را هنگام استفاده مستقیم از برنامه وب کنترل میکند، در حالی کهOAuth2 Scopes ، دسترسی به منابع API را برای یک کلاینت خارجی به نمایندگی از یک کاربر کنترل میکند.
برای استفاده از Scopeها در پاسپورت نیاز است در دو بخش زیر کارهایی را انجام دهیم.
1- سرور OAuth
· تعریف Scopeها در سرور پاسپورت
· انجام تنظیمات برای بررسی Scope موجود در یک درخواست برنامه کلاینت
· تنظیم مسیر api
2- برنامه کلاینت
· تنظیم کردن مسیرها
از آن جایی که scope درخواستی با scope در نظر گرفته شده برای کلاینت در سرور OAuth یکی نمیباشد، با کلیک بر روی Authorize با پیغامی مشابه شکل زیر مواجه میشویم:
این پیغام به معنی این است که scope درخواست شده توسط برنامه کلاینت در سرور ما تایید نشده است و همان پیغامی است که ما در بررسی Scope در فایل api.php نوشته بودیم.