الفرق بين الـ 401 و 403 في الـ RESTful API
السلام عليكم ورحمة الله وبركاته
المقدمة
سنشرح نبذة سريعة عن الفرق بين 401 و403
سنفترض في البداية أننا لدينا ثلاث أشخاص
const user_1 = {
name: 'Ahmed',
role: 'Normal', // ركز هنا، شخص عادي من الشارع
};
const user_2 = {
name: 'Ali',
role: 'Employee', // موظف في شركة ما
};
const user_3 = {
name: 'Osman',
role: 'Manager', // مدير الشركة بنفسه
};
هل يستطيع الشخص الأول دخول الشركة ؟
accessTheCompany(user_1); // Error 401 Unauthorized
لا، لأنه ليس موظفًا في الشركة ولا يمد بالشركة بصلة
لذا حصلنا على 401 أي لا تملك أي صلاحيات في الشركة
هل يستطيع الشخص الثاني دخول الشركة ؟
accessTheCompany(user_2); // Success to access the company
نعم، لأنه موظف في الشركة لذا يملك صلاحيات دخولها
لكن، هل يملك هذا الموظف كل أنواع الصلاحيات ؟
بمعنى هل يستطيع حذف جميع بيانات الشركة على سبيل المثال ؟
deleteAllData(user_2); // Error 403 Forbidden
لا، برغم من أنه موظف في الشركة إلا أنه لا يملك كل الصلاحيات
فـ 403 تأتي بمعنى محظور!
كل موظف لديه رتبة أور دور معين في الشركة ومحظور عليه باقي الأمور
ونستطيع معرفة الموظف والصلاحيات المسموحة له عن طريق الـ token الخاص به
يمكنك أن تشبه الـ token بالبطاقة الشخصية لكل موظف
ماذا عن الشخص الثالث ؟
operateEveryThing(user_3); // Success to perform this
المدير ما هو إلا موظف لديه صلاحيات أكثر
لذا يستطيع القيام بأشياء لا يستطيع الموظف العادي فعلها
ونفرق بين الموظف والمدير وصلاحيات كل منهما عن طريق الـ token كما ذكرنا
الشركة هنا مجرد مثال توضيحي، لكن الأمر قد ينطبق على أي شيء
دخولك لموقع معين وما صلاحياتك فيه
اشتراكك في ندوة معينة على اللانترنت وما دورك فيها، هل أنت متفرج أم متحدث في الندوة أم منظم في طاقم التنظيم والإدارة