فرض کنید سایت ما سه بخش دارد:
1- بخشی که شامل صفحات landing page، نمایش یک پست، نمایش تمام پست ها و ... می باشد. این بخش توسط blade پیاده سازی می شود و ممکن است از کامپوننت های vue هم استفاده شود.
2- بخش دوم که صفحه پروفایل کاربران عادی سایت است که در آن کاربران امکان ویرایش اطلاعات کاربری خودشان، دیدن پست های خودشان و ویرایش آنها، نمایش نظرات ثبت شده و ... دارند. این بخش به صورت SPA است و کاملا با Vue پیاده سازی شده و طبیعتا تنها کاربران login شده می تواند آن را ببینند شوند.
3- بخش سوم صفحه داشبورد ادمین است که برای مدیریت بخش های مختلف و اعمال تنظیمات مورد نیاز و ... است. این بخش نیز به صورت SPA است و کاملا با Vue پیاده سازی شده. در این بخش تنها کاربران با نقش ادمین امکان فعالیت دارند و هر یک بر اساس Permissionهای داده شده به آنها می توانند برخی از کارها را انجام دهند. منظور این است که باید چک شود که آیا کاربر مجوز دیدن یک بخش یا انجام یک کار مشخص را دارد یا نه.
همچنین routing در صفحه پروفایل کاربر و داشبورد ادمین توسط vue انجام می شود و انجام actionها توسط axios و ارسال درخواست به apis نوشته شده در laravel انجام می شود. و همه این سه بخش در یک application یکسان قرار دارند
حال سوال اینه که Authentication و Authorization در این سناریو چگونه باید انجام شود؟ آیا استفاده از laravel-passport برای این کار مناسب است؟ امکان انجام هر دو مورد در laravel-passport هست؟ مثلا قرار است Authorization در بخش front-end و توسط vue انجام شود، این مورد به چه صورت باید انجام شود؟ ترکیب laravel-passport و laravel-permission - Spatie امکان پذیر هست؟ یا اصلا نیازی به آن نداریم؟
شاید سوال کلی تر: اصلا این سناریو منطقی و معقول است؟