الفرق بين 401 و403

السلام عليكم ورحمة الله وبركاته

وقت القراءة: دقيقتين

المقدمة

سنشرح نبذة سريعة عن الفرق بين 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 كما ذكرنا

الشركة هنا مجرد مثال توضيحي، لكن الأمر قد ينطبق على أي شيء
دخولك لموقع معين وما صلاحياتك فيه
اشتراكك في ندوة معينة على اللانترنت وما دورك فيها، هل أنت متفرج أم متحدث في الندوة أم منظم في طاقم التنظيم والإدارة