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 داره استفاده میکنه: