🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ مانی دمیرچی لو
بهترین نوع سیستم Authorization
جامعه لاراول ایجاد شده در ۱۵ مرداد ۱۴۰۲

سلام میخواستم بدونم که ایتفاده از گارد بهترین روشه برای اینکه چک بشه کاربر ادمینه یا اینکه داخل دیتابیس یه فیلد بزاریم به اسم is_admin که بفهمیم کاربر ادمینه یا نه،چون با گارد که خواستم کار کنم دیدم خیلی دردسر داره و باید برای هر نوع گارد محتوای خاص خودش تولید بشه و از پالیسی‌ها و یه سری موارد نمیشه استفاده کرد. البته تا جایی که من میدونم ممنون میشم راهنمایی کنید که بهترین روش استفاده از گارد‌ها چیه و چه زمانی باید فیلد دیتابیسی ست کنیم برای دسترسی ها

سلام مانی عزیز

روشی که میگید برای نقش‌های زیاد و مختلف قابل استفاده نیست و به مشکل میخورید.

بله طبق چارچوب لاراول و مستندات Authorization باید عمل کنید که شامل پالیسی‌ها و گارد‌ها هست و بهترین راه هست.

یه چند بار که باهاشون کار کنید براتون ساده میشه.

احمدرضا فاطمی کیا ۱۵ مرداد ۱۴۰۲، ۱۰:۲۹

نمیشه از گارد و پالیسی همزمان با هم استفاده کرد یا کاملا جدا از هم هستن ؟

مانی دمیرچی لو ۱۵ مرداد ۱۴۰۲، ۱۰:۳۰

سلام مانی جان، نحوه پیاده سازی موردی که گفتین بستگی به پروژه تون داره، اگه صرفاً میخواید یه پنل ادمین داشته باشید که یه سری کاربران خاص فقط به اون پنل دسترسی داشته باشن، میتونید یه ستون به اسم is_admin بزارید و برای دسترسی به روت‌ها و جاهای مختلف این ستون رو چک کنید یا میتونید از Authorization خودِ لاراول هم برای این مورد استفاده کنید، یا اینکه کلا میتونید جدول و مدل Admin‌ها رو جدا کنید.

اگه که میخواید چندین نقش وجود داشته باشه مثلا یه نفر نویسنده باشه و فرضا توی پنل ادمین فقط به بخش مطالب دسترسی داشته باشه و یه ادمین اصلی هم داشته باشیم و یا یه ادمین معمولی هم داشته باشیم که دسترسی‌های کمتری داشته باشه، خب اینجا باید یه سیستم RBAC پیاده سازی بشه که نقش‌ها بر اساس دسترسی هایی که بهش میدیم ساخته میشن. توی لاراول پکیج‌های مختلفی برای اینکار هست که معروف ترینش پکیج Spatie هستش که میتونید ازش استفاده کنین.

بهترین پاسخ
صادق برزگر ۱۵ مرداد ۱۴۰۲، ۱۱:۱۹