المجتمع الأكبر للعرب في مجال التك

تحميل من Google Playتحميل من App Store

فكرة عامه عن الAuthentication

moham160640 منذ 3 أسابيع

بسم الله و الصلاة و السلام على رسول الله.

الAuthentication ممكن يبقى موضوع بيستصعبوا البعض، بس خليني اقلكوا و من واقع خبرة ان الموضوع ابسط من كده، فخلينا نبص عليه بصه سريعه و نشوف هل هو فعلا يستاهل الربكة الي بيرتبكها بعض الناس منوا و لا لأ.

اول مرة حبيت اعمل سيستم للAuthentication مجاش على بالي خالص اشوف حل جاهز و لا اصلا اشوف الموضوع بيتعمل ازاي، و ده مش صح، بس وقتها بسبب قلت الخبرة مكنتش عارف ان الحاجات المتككرة كتير زي الAuthentication بيقى ليها ecosystem كامل خاص بيها بيفور عليك اختراع العجلة، بس ما علينا، فكرة الAuthentication فعلا بسيطة، الموضوع بيمشي كالتالي، في يوزر بيحاول يعمل تسجيل دخول من خلال الفرونت اند بتاعك، الي هو في الطبيعي بيبقى فورم بيملاه بالاسم و كلمة المرور، و بعد كده بيدوس على زرال متركب عليه eventlistener بيبعت بياناتك للسيرفر عشان يتأكد منها.

تمام، خلاص بقى السيرفر اتأكد ان في مستخدم فعلا متسجل بالايميل ده و ان الباسورد الي هو بعتوا سليم، بنروح على الخطوة الي وراها ألى و هي ان احنا نكريت حاجه اسمها session token او cookie، على حسب انت بتستعمل انهي، و عشان القارء ميتخضش دي او دي هي مجرد كود تعريفي بإن اليوزر الفولاني عامل login بس كده، طب حيجي واحد يسألني ليه مسجلش الId بتاعوا و خلاص من غير اي كود تعريفي معاه و حبقى اديني وفرت شوية مموري، حقولك عشان اذا انا فعلا عملت كده اي حد حبيعتلي الId بتاع مستخدم معين عامل login بيطلب بياناته او اي حاجه تخصه فتمام خد الي انت عايزوا، انت يعم متسجل عندي و كلوا زي الفل، و ده طبعا مش منطقي، عشان انا كده خليت الlogin حاجه معدومة الخصوصية و خليت الباسورد مجرد بيانات زياده المستخدم بيكتبها من غير اي قيمة مقابلها.

كده فاضل آخر خطوه الا و هي اني ابعت الكود التعريفي ( cookie او token ) لليوزر عشان يخزنوا عندوا و يبعتهولي في كل request محتاجه Authentication، بس كده، انا كسيرفر بقارن الكود التعريفي اللي انا مخزنوا عندي بالي اليوزر باعتوا و على هذا الاساس بقبل او ارفض طلبة.

طبعا لازم تاخد بالك من حاجه، ان الكود ده لو حد سرقة او عرف يوصله فهو ممكن ينتحل اكونت يوزر معين فخد احطياطك ضد الCSRF بإنك تبعت للبروزر الheaders المظبوطة. و بس كده.

1 رد