Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support FAQs Entwicklung Wie realisiere ich einen Login-Dialog über ein Eingabeformular? Was ist ein CookieCrumbler?
Eine Ebene höher

Frage

Wie realisiere ich einen Login-Dialog über ein Eingabeformular? Was ist ein CookieCrumbler?

Antwort

Zope benutzt normalerweise eine Cookie-basierten Authenfizierungsmechanismus. Um einen Login-Dialog über ein HTML Formular zu realisieren geht man wie folgt vor:

  • CookieCrumbler installieren (ist bei CMF dabei oder von http://hathaway.freezope.org runterladen
  • Im ZMI auf höchster Ebene instanziiert man einen CookieCrumber (ID ist beliebig, Defaultparameter kann man unverändert übernehmen)
  • der Eingabe-Dialog sieht in etwas wie folgt aus:
         <form method="post" action="logged_in">
         <input type="text" name="__ac_name">
         <input type="text" name="__ac_password">
         <input type="hidden" name="__ac_persistent" value="1">
         <input type="submit">
         </form>
    
  • beim Submitten schnappt sich der CookieCrumbler den Usernamen und Passwort auf magische Weise und authentifziert den Benutzer gegenüber den Userfolder automatisch
  • in logged_in (kann ein ZPT oder ein PyScript sein) kann man überprüfen, ob der Benutzer authentifiziert wurde und dann entsprechend auf eine weitere Seite redirecten.

    Bsp.:

          from AccessControl import getSecurityManager
          user = getSecurityManager().getUser().getUserName()
    
          if user=='Anonymous User':
              context.REQUEST.RESPONSE.redirect('login_failed')  # failed
          else:
              context.REQUEST.RESPONSE.redirect('login_ok')      # login ok
    


Letzte Änderung: 30.04.2006 • Autor: ajung