[PHP] Zend Auth

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hapablap, 23. Dezember 2008 .

Schlagworte:
  1. 23. Dezember 2008
    Zend Auth

    Hi,

    Ich weiß nicht, ob sich hier jemand mit dem Zend Framework auskennt, aber ich hab grad ein Problem. Undzwar hab ich mir mit diesem Tutorial hier ein Login geschrieben:
    http://akrabat.com/wp-content/uploads/getting-started-with-zend-auth_108.pdf
    Funktioniert alles eigentlich ganz gut, die Abfrage, ob die Zugangsdaten korrekt sind, funktioniert auch. Ich hab nur ein Problem mit dem Storage, um dann später meine Daten auszugeben (Benutzername z.B. für eine Begrüßung).

    In meinem AuthController steht:
    PHP:
    $auth  Zend_Auth :: getInstance ();
    $result  $auth -> authenticate ( $authAdapter );

    if (
    $result -> isValid ()) 
    {
        
    // success: store database row to auth's storage
        // system. (Not the password though!)
        
    $storage  $auth -> getStorage ();
        
    $storage -> write ( $authAdapter -> getResultRowObject ( null 'password' ));
        
    $this -> _redirect ( '/' );
    Wird auch korrekt abgefragt, da hab ich mich schon vergewissert.

    In meinem IndexController steht dann:
    PHP:
    function  init ()
    {
        
    $this -> initView ();
        
    $this -> view -> baseUrl  $this -> _request -> getBaseUrl ();
        
    $this -> view -> user  Zend_Auth :: getInstance ()-> getIdentity ();
    }
    In meiner View möchte ich dann den user ausgeben:
    PHP:
    echo  $this -> escape ( $this -> user -> real_name );
    real_name steht in der Datenbank in der Tabelle user. Die Abfrage funktioniert korrekt, somit kann ich davon ausgehen, dass die Verbdinung funktioniert. Irgendwie krieg ich das mit dem store nicht ganz hin.

    Folgende Fehlermeldung / Notiz bekomme ich:
    Code:
    Notice: Trying to get property of non-object in /data/www/application/views/scripts/index/index.phtml on line 4
    Ich hoffe, mir kann hier jemand weiter helfen

    Danke schon mal,
    Hapablap
     
  2. 25. Dezember 2008
    AW: Zend Auth

    im prinzip wird das so aufgerufen:

    PHP:
    $auth  Zend_Auth :: getInstance ();
            
    $login  $auth -> hasIdentity ();
    if(
    $login )
    {
        
    $identity  $auth -> getIdentity ();
        
    $this -> user_id  $identity [ 'user_id' ]; ....

    so kannst du damit arbeiten und auf die jeweiligen attribute zugreifen.
    das speichern habe ich in einem extra AuthAdapter gelöst:

    PHP:
    $_identity  = array( 'user_id'  =>  $result [ 0 ][ 'user_id' ],
                                   
    'username'  =>  $result [ 0 ][ 'nickname' ],
                                   
    'name'  =>  $result [ 0 ][ 'name' ],
                                   
    'vorname'  =>  $result [ 0 ][ 'vorname' ],
                                   
    'role_id'  =>  $result [ 0 ][ 'gruppen_id' ],
                                   
    'role'  =>  $result [ 0 ][ 'gruppe' ],
                                   
    'mail'  =>  $result [ 0 ][ 'email' ]);

                return new 
    Zend_Auth_Result ( Zend_Auth_Result :: SUCCESS $_identity , array( 'Erfolgreich authentifiziert an der Datendank' ));
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.