اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

لدي api بها مجموعة من الراوتس يتعين على المستخدم تسجيل الدخول من قبل الموقع والحصول على access token و refresh token

مدة access token 10s ويتجدد من خلال refresh

معلوم انه بوجود هذا التوكن يستطيع المستخدم تصفح الموقع والاستعلام عن البيانات والسؤال هو

لاشك انه يوجد بعض الراوتز محجوبة عن المستخدم العادي في front end وهي مخصصة للمدراء وغيرهم، يتم هذا الحجب من خلال الفرونت اند وذلك بحجب هذه الصفحات عنه ولكن في حال اراد الاستعلام عن طريق برنامج مثلاً postman يستطيع تصفح تلك الراوتز ! كيف يمكن منعه من ذلك ؟

اول ما خطر في بالي هو وضع حقل في جدول المستخدم للاستعلام عن هذه الراوتز هل هذه الطريقة صحيحة ؟

وان كان يوجد افضل منها فياليت احد يزودني بها مع الشكر.

Recommended Posts

  • 1
نشر

هذه العملية تستلزم حجب في frontend و backend أيضا لنفترض أن user schema هي كالتالي 

{
username:salah, 
password:fqffza,
type:"user"
}

في ال type للمستخدم العادي user ومثلا للمدير admin

{
username:vergil,
password:fqffza,
type:"admin"
}

سيكون لديك middlewrae في bakend خصيصا للroutes التي تتطلب صلاحيات مدير وستجلب من خلاله المستخدم وتتاكد من انه مدير قبل السماح له بتفعيل ال route

  • 0
نشر

يمكنك استخدام طريقة أغلب المبرمجين يتعاملون بها , وهي الاعتماد على access_token المرجع و ايضا كود دخول ثاني يتم ارسالها في كل ريكويست بحيث كود الدخول هذا يكون ثابت و يكون متعارف عليه بين مبرمج الأندرويد و مبرمج الباك أند , بحيث إذا كان الريكويست يسمح بعرض البيانات من غير أن يكون هناك عملية تسجيل الدخول , ففي الحالة التالي يكون يجب الوضول إليه باستخدام كود الدخول المتعارف عليه , بحيث يتم إرسال هذا الكود في Header و يتم التعامل معه في الباك أند بأنه إذا لا يوجد كود دخول لن يتم عرض البيانات في حالة لا يوجد تسجيل دخول , وكذلك في حالة كان الريكويست يحتاج عملية تسجيل دخول ( لتوفير access_token ) أيضا لا يعرض بيانات إلا في حالة أن يكون مرسل إليه كود الدخول و access_token . هذا أسلوب يوفر عليك حماية api.

  • 0
نشر

@Salah Eddin Berriani

يعني اخي صلاح الطريقة المعمول فيها هي بتوفير داتا في قاعدة البيانات تبين صلاحيات المستخدم بالنسبة لدخول اي راوت ؟

لان الصلاحيات ليست مدير وفقط ولكن صلاحيات كثيرة، لا يوجد سوى حفظها في قاعدة البيانات هل هذا صحيح ؟

 

@بلال زيادةاخ بلال انا لا اتكلم عن عملية تسجيل الدخول وانما عن ما هو بعدها من صلاحيات للصفحات، وبخصوص عملية تسجيل الدخول تكون عن طريق تضمين التوكن في كوكيز اليس هذا افضل ؟

  • 0
نشر
بتاريخ منذ ساعة مضت قال مضحي Modhy:

@بلال زيادةاخ بلال انا لا اتكلم عن عملية تسجيل الدخول وانما عن ما هو بعدها من صلاحيات للصفحات، وبخصوص عملية تسجيل الدخول تكون عن طريق تضمين التوكن في كوكيز اليس هذا افضل ؟

الطريقة التي ذكرتها لك  هي طريقة عامة بحيث كيف نحمي الريكويستات الخاصة بِ  api إذا تم الوصول إليها من أشخاص أخرين , يعني عندما نضع كود دخول يكون عام لكل الريكويستات هنا نضع عامل حماية للريكويست. 

  • 1
نشر

نغم يمكنك حفظها في قاعدة البيانات هذا بديهي ولكن أيضا يمكنك تضمين المعلومات في ال token المرسل بمعنى عند فك تشفير ال token في backend ستحصل على معلومات ال user بما فيها النوع و يمكنك التصرف على ذلك الأساس 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...