وzope.authentication يقدم تعريفا للمفاهيم التوثيق لاستخدامها في إطار Zope.
وثائق مفصلة
دعم خروج
يتم تعريف دعم خروج من واجهة بسيطة ILogout:
على & nbsp؛ >>> من zope.authentication.interfaces استيراد ILogout
الذي يحتوي على أسلوب واحد 'خروج'.
الاستخدام الحالي للILogout هو تكييف عنصرا IAuthentication إلى ILogout ولتوضيح ذلك، سنقوم بإنشاء تنفيذ الخروج بسيط هو أن تتكيف IAuthentication:
على & nbsp؛ >>>adapter (IAuthentication)
على & nbsp؛ ...implementer (ILogout)
على & nbsp؛ ... الدرجة SimpleLogout (كائن):
على & nbsp؛ ...
على & nbsp؛ ... مواطنه __init __ (النفس، المصادقة):
على & nbsp؛ ... تمريرة
على & nbsp؛ ...
على & nbsp؛ ... خروج مواطنه (النفس، الطلب):
على & nbsp؛ ... طباعة 'لقد العضو تسجيل الخروج "
على & nbsp؛ >>> provideAdapter (SimpleLogout)
وشيء لتمثيل أداة التوثيق:
على & nbsp؛ >>>implementer (IAuthentication)
على & nbsp؛ ... مصادقة فئة (كائن):
على & nbsp؛ ... تمريرة
على & nbsp؛ >>> المصادقة = مصادقة ()
لإجراء الخروج، نكيف المصادقة على ILogout والدعوة 'خروج':
على & nbsp؛ >>> الخروج = ILogout (المصادقة)
على & nbsp؛ >>> logout.logout (TestRequest ())
على & nbsp؛ المستخدم بتسجيل الخروج
محول لل"NoLogout"
الصف:
على & nbsp؛ >>> من zope.authentication.logout NoLogout استيراد
يمكن تسجيلها كمقدم تراجع من ILogout لمكونات IAuthentication التي ليست قابلة للتكيف مع ILogout خلاف ذلك. طريقة الخروج NoLogout لهو عدم المرجع:
على & nbsp؛ >>> NoLogout (المصادقة) .logout (TestRequest ())
واجهة المستخدم تسجيل الخروج
لأن بعض بروتوكولات التوثيق لا تدعم رسميا الخروج، فإنه قد لا يكون من الممكن لمستخدم إلى الخروج مرة واحدة اذا كان قد بتسجيل الدخول. وفي مثل هذه الحالات، سيكون من غير المناسب تقديم واجهة مستخدم لتسجيل الخروج.
لأن الدعم الخروج هو شكلي في الموقع، ويوفر Zope محول أنه عندما المسجلة، يشير إلى أن يتم تكوين لتسجيل الخروج من الموقع:
على & nbsp؛ >>> من zope.authentication.logout استيراد LogoutSupported
هذه الفئة فقط بمثابة العلم كما تنفذ ILogoutSupported:
على & nbsp؛ >>> من zope.authentication.interfaces استيراد ILogoutSupported
على & nbsp؛ >>> ILogoutSupported.implementedBy (LogoutSupported)
على & nbsp؛ صحيح
على & nbsp؛ >>> طلب = الكائن ()
على & nbsp؛ >>> ILogoutSupported.providedBy (LogoutSupported (طلب))
على & nbsp؛ صحيح
شروط الرئيسية
وتستخدم مصطلحات الرئيسية لدعم واجهات المتصفح للبحث عن المصادر الرئيسية. أنها توفر إمكانية الوصول إلى رموز وعناوين للقيم. يستخدم الرأي حيث الرئيسي أداة التوثيق للحصول على عناوين رئيسية. دعونا خلق أداة التوثيق لإثبات كيف يعمل هذا:
على & nbsp؛ >>> الفئة الرئيسية:
على & nbsp؛ ... مواطنه __init __ (الذات، الهوية، العنوان):
على & nbsp؛ ... self.id، self.title = الهوية، وعنوان
على & nbsp؛ >>> من zope.interface المنفذ الواردات
على & nbsp؛ >>> من zope.authentication.interfaces استيراد IAuthentication
على & nbsp؛ >>> من zope.authentication.interfaces استيراد PrincipalLookupError
على & nbsp؛ >>>implementer (IAuthentication)
على & nbsp؛ ... الدرجة AuthUtility:
على & nbsp؛ ... البيانات = {'جيم': 'جيم فولتون'، 'ستيفان': 'ستيفان ريختر'}
على & nbsp؛ ...
على & nbsp؛ ... مواطنه getPrincipal (النفس، معرف):
على & nbsp؛ ... عنوان = self.data.get (ID)
على & nbsp؛ ... إذا العنوان ليس بلا:
على & nbsp؛ ... عودة مدير (الهوية، العنوان)
على & nbsp؛ ... رفع PrincipalLookupError
ونحن الآن بحاجة إلى تثبيت أداة التوثيق:
على & nbsp؛ >>> من zope.component provideUtility استيراد
على & nbsp؛ >>> provideUtility (AuthUtility ()، IAuthentication)
نحن بحاجة إلى المصدر الرئيسي حتى نتمكن من إنشاء طريقة عرض منه.
على & nbsp؛ >>> من zope.component getUtility استيراد
على & nbsp؛ >>> الطبقة PrincipalSource:
على & nbsp؛ ... مواطنه __contains __ (النفس، معرف):
على & nbsp؛ ... المصادقة = getUtility (IAuthentication)
على & nbsp؛ ... محاولة:
على & nbsp؛ ... auth.getPrincipal (ID)
على & nbsp؛ ... إلا PrincipalLookupError:
على & nbsp؛ ... عودة كاذبة
على & nbsp؛ ... آخر:
على & nbsp؛ ... العودة صحيح
الآن يمكننا خلق وجهة نظر من حيث:
على & nbsp؛ >>> من PrincipalTerms استيراد zope.authentication.principal
على & nbsp؛ حيث >>> = PrincipalTerms (PrincipalSource ()، لا يوجد)
الآن يمكننا أن نطلب من حيث عرض لمدة:
على & nbsp؛ >>> المدى = terms.getTerm ('ستيفان')
على & nbsp؛ >>> term.title
على & nbsp؛ "ستيفان ريختر"
على & nbsp؛ >>> term.token
على & nbsp؛ "c3RlcGhhbg__"
إذا كان لنا أن نسأل لمدة لا وجود له، وحصلنا على الخطأ البحث:
على & nbsp؛ >>> terms.getTerm ('بوب')
على & nbsp؛ Traceback (المكالمات الأخيرة الأخيرة):
على & nbsp؛ ...
على & nbsp؛ LookupError: بوب
إذا كان لدينا المنوال، يمكننا الحصول على هوية الرئيسي لذلك.
على & nbsp؛ >>> terms.getValue ('c3RlcGhhbg__')
على & nbsp؛ 'ستيفان'
ما هو الجديد في هذا الإصدار:
انكسر غير ملائمة اختبار الاعتماد على zope.component.nextutility.
(إلى الأمام التوافق مع zope.component 4.0.0).
استبدال zope.component.adapts إهمال استخدام مع ما يعادل zope.component.adapter الديكور.
استبدال zope.interface.implements إهمال استخدام مع ما يعادل zope.interface.implementer الديكور.
انخفض الدعم لبيثون 2.4 و 2.5.
المتطلبات:
بيثون
لم يتم العثور على التعليقات