كيفية تسجيل الخروج عند استخدام مصادقة .htaccess (و .htpasswd) المصادقة؟ [مكرر

StackOverflow https://stackoverflow.com/questions/1163868

سؤال

ممكن مكررة:
تسجيل مصادقة HTTP عبر PHP

أهلا

لدي بعض الوظائف على موقع الويب الخاص بي المحمي باستخدام .htaccess و .htpasswd. وبعد عندما يحاول المستخدمون الوصول إلى هذا، يحصلون على موجه لإدخال التفاصيل. يدخلون تفاصيلهم والحصول عليه ويمكنهم رؤية الأشياء وما إلى ذلك. كل شيء يعمل بشكل جيد.

سؤالي هو كيف يمكنني إنشاء logout وظيفة لهذا النوع من المصادقة. أعلم أنه يمكن أن يغلق نافذة المتصفح إلى "تسجيل الخروج". ولكن هذا ليس مثاليا. ماذا تقترح لي؟

شكرا.

هل كانت مفيدة؟

المحلول

المتصفحات عادة لا تدعم هذا، انظر كيف يمكنني تسجيل الخروج؟

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

ومع ذلك، على الرغم من أن هذا ربما يكون السؤال الأكثر شيوعا حول المصادقة الأساسية، فإن أي من موردين متصفحهم الرئيسيين قد شاهدوا هذا بمثابة ميزة مرغوبة لوضعها في منتجاتها.

وبالتالي، فإن الإجابة على هذا السؤال هي أنه لا يمكنك ذلك. آسف.

هناك ملحقات المتصفح تتيح لك مسح مصادقة HTTP للموقع. ل فايرفوكس مطور ويب تمديد (وهو واحد من ملحقات Favourtie على أي حال) يقدم هذه الميزة. القائمة لهذا Miscellaneous/Clear Private Data/HTTP Authentication.

نصائح أخرى

اختبارها على فايرفوكس والكروم. وبعد ما يمكنك القيام به هو إرسال المستخدم إلى http: // تسجيل الخروج: logout@example.com. وبعد سيحل هذا استبدال اسم المستخدم / كلمة المرور الحالية مع تسجيل الخروج / تسجيل الخروج (يمكن أن يكون أي مجموعة مستخدم / تمرير غير صالح) وبما أن لديهم الآن اسم المستخدم / كلمة المرور غير صحيح، فسيتعين عليهم تسجيل الدخول مرة أخرى للوصول إلى الموقع.

على Opera هذا لا يعمل، لأنه يمكنك الحصول على العديد من أسماء المستخدمين / كلمات المرور في نفس الوقت. لم يعمل على IE أيضا، لأن أي لا يبدو أن الدعم http: // اسم المستخدم: password@example.com عناوين URL.

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

كما لاحظ في عدم كفاية وظيفة تسجيل الخروج في مصادقة HTTP أعتقد أن الإجابة هي تغيير RFC للسماح للمهاجف ودعم زر تسجيل الخروج. اقتراح المؤلف الإضافي بأن يكون الخادم قادر على إرسال رأس "تسجيل الخروج" من شأنه أن يؤدي إلى القضاء على الحاجة أي دعم وكيل مستخدم العميل نظرا لأن مواقع الويب يمكن أن تضم ببساطة رابطا على صفحة ويب إلى عنوان URL الذي يقوم بإرجاع رمز الاستجابة الضروري و / أو رأسه لإبطال الجلسة الحالية.

إنه نوع ممكن لتسجيل الخروج. يجب أن تنفذ صفحة تسجيل الخروج، والتي سترجع HTTP 401، حتى يدخل المستخدم معلومات تسجيل الدخول السيئة، ثم إعادة توجيه مكان آخر. يتذكر المتصفح أحدث معلومات تسجيل الدخول المقبولة، وبالتالي يتجاوز تسجيل الدخول الصحيح.

ولكن هذا هو كيندا غير قابل للاستخدام، كوس يحتاج إلى تعاون المستخدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top