السلام عليكم

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

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

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

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

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

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

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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

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

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

 

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

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ منذ ساعة مضت قال مضحي Modhy:

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن