🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ هادی قاسمی
Sanctum abilities vs Gate in laravel
جامعه لاراول ایجاد شده در ۲۷ تیر ۱۴۰۱

سلام وقت بخیر .

1- تفاوت Sanctum abilities و Gate چی هستش ؟

2 - آیا امنیت شون شبیه هست ؟ و در پروژه‌های بزرگ میشه از Sanctum abilities بجای gate لاراول استفاده کرد ؟

سلام هادی عزیز، وقت به خیر ?

ببینید این ۲ موضوع باید جدا از هم ببینیم.


بهتر هست اینطور نگاه کنیم که شما در نرم افزارتون هر وقت بخواهید میتونید gate و policy رو تغییر بدید و همون موقع هم این تغییرات اعمال کنید و سریع هم به کاربران اعمال میشه ولی در ability که شبیه به scope در OAuth هست تا وقتی کاربر مجددا عملیات لاگین انجام نداده باشه شما نمیتونید ability هایش را ویرایش کنید و اون فرد همچنان با همون سطح دسترسی قبلی میتونه به اپلیکیشن شما دسترسی داشته باشه.


پس ability و یا scope‌ها که در api استفاده میشه واقعا باید مجوزهای با سطح دسترسی بالا باشن مثل

write و یا write/read البته که میتونن بصورت خیلی ریز هم باشن مثل user-manage که مثلا به اون اپلیکیشن امکان مدیریت کاربران رو هم بده.


ولی پیشنهاد میشه که برای SPA و سایت یا اپلیکیشنتون از همون gate و policy استفاده کنید و اگر قرار هست به یک اپلیکیشن ثالث api بدید که بتونه از طریق api به اپلیکیشن شما متصل بشه و کارهایی رو انجام بده از ability استفاده کنید.


برای درک بهتر پیشنهاد میکنم این لینک رو ببینید در github تا متوجه بشید که چطور از scop داره استفاده میکنه:

https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps

این هم یک پست دیگه برای درک بهتر scope و ability در oauth که نمونه‌های دیگه غیر از github هم معرفی کرده.

https://oauth.net/2/scope/


موفق باشید ??

بهترین پاسخ
محمد حسن عاطفت ۲۷ تیر ۱۴۰۱، ۱۱:۲۵