+ Antworten
Ergebnis 1 bis 4 von 4

Thema: username und passwort eines angemeldeten Benutzers ermitteln

  1. #1
    Neu an Board
    Registriert seit
    31.08.2008
    Beiträge
    3
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard username und passwort eines angemeldeten Benutzers ermitteln

    Hallo Forengemeinde,

    das ist mein erster Post in diesem Forum und daher möchte ich erstmal alle recht herzlich grüßen. Dies ist ein echt gutes Forum, wie man es nur noch selten findet. Ein Lob an alle!

    Mein Problem:

    Ich habe ein Authentification-Plugin erstellt, welches Benutzername und Passwort mittels SOAP-Schnittstelle eines externen Dienstleisters prüft und den Login zulässt oder nicht.

    So weit, so gut ...

    Nun muss ich aber noch ein Modul haben welches den usernamen und das Passwort des angemeldeten Benutzers auslesen soll, weil die Ausgabe des Inhalts davon abhängt ob:

    a) der Benutzer ein jommla-Benutzer ist, oder ob er ein Benutzer der externen Datenbank ist

    und

    b) die Ausgabe je nach Benutzer der externen Datenbank individuell erfolgen soll. Dummerweise bietet die besagte SOAP-Schnittstelle des externen Dienstleisters keine Möglichkeit eine user-ID zu übergeben. Es muss jedes mal ein SOAP-Call mit Übergabe des usernames und des passwords erfolgen. Somit muss ich bei Aufruf des Moduls immer den aktuellen Benutzer und sein Passwort checken.

    Kennt jemand eine Möglichkeit wie dies ginge? Gibt es evtl. irgendwelche temporären Laufzeitvars die diese Informationen innerhalb einer Session halten? Ich möchte nur ungern die base64_decode() - Funktion ab der Authentifikation benutzen und später mit base64_encode() die Informationen wieder aus einen cookie laden ...

    Hoffe, dass es verständlich ist. Bin für jeden Tip dankbar.

    Gruß
    eudobay

  2. #2
    Verbringt hier viel Zeit Avatar von caro84
    Registriert seit
    20.03.2008
    Alter
    27
    Beiträge
    600
    Bedankte sich
    82
    Erhielt 205 Danksagungen
    in 162 Beiträgen

    Standard

    PHP-Code:
    $user =& JFactory::getUser();
    echo 
    $user->username
    echo $user->password//verschlüsselt
    print_r($user); 
    da steht eigentlich alles drinne, was du brauchst...
    if you don´t eat cheese, you´re letting the terrorist win!
    Web Developer Kit Tutorial

  3. Erhielt Danksagungen von:


  4. #3
    Neu an Board
    Registriert seit
    31.08.2008
    Beiträge
    3
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    hab es jetzt mal probiert nach dem ich mich vorab schon mal bedankt habe

    Ich habe von Joomla keine Ahnung und daher habe ich mir noch mal einiges zusammen gegoogelt:

    Ich will jetzt doch kein Modul verwenden sondern das Script per Wrapper einbinden, geht am schnellsten glaube ich weil das script ja schon fertig ist. Hoffe es ist nicht allzu schlimm, dass ich es hier unter Module posten, aber caro84 schien meine Fragestellung ja verstanden zu haben ...

    Hier habe ich mir nachgelesen wie ich per Wrapper auf die JFactory zugreife:
    http://www.joomlaportal.de/joomla-er...rameworks.html

    somit verwende ich am Anfang des Scripts folgenden Code:
    PHP-Code:
    <?php
    // IMPORTANT: points to joomla root - change it
    define'JPATH_BASE'dirname(dirname(__FILE__)));

    // set parent file flag
    define'_JEXEC');

    // define directory separator
    if(!defined('DS')) 

        
    define'DS'DIRECTORY_SEPARATOR ); 
    }  

    // load joomla framework 
    require_once( JPATH_BASE.DS.'includes'.DS.'defines.php' ); 
    require_once( 
    JPATH_BASE.DS.'includes'.DS.'framework.php' );

    $mainframe = &JFactory::getApplication('site');
    $mainframe->initialise();

    // start own code
    $user= &JFactory::getUser();
    $username $user->username;
    print_r($user); //nur um mal zu sehen welche Infos da sind  
    ?>
    und bekomme folgende Ausgabe des Arrays:
    juser Object ( [_errors] => Array ( ) [id] => 0 [name] => [username] => [email] => [password] => [password_clear] => [usertype] => [block] => [sendEmail] => 0 [gid] => 0 [registerDate] => [lastvisitDate] => [activation] => [params] => [aid] => 0 [guest] => 1 [_params] => jparameter Object ( [_raw] => [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => /var/www/web279/html/cms/cms/libraries/joomla/html/parameter/element ) [_errors] => Array ( ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( ) ) ) ) [_errorMsg] => )

    Die Ausgabe kommt sowohl bei Joomla-Benutzern als auch bei Benutzern der o.g. externen DB. Da aber [guest] den Wert 1 hat gehe ich jetzt mal davon aus, dass ich als Gast betrachtet werde und nicht als regestrierter Benutzer. Liege ich da richtig?

    Was mache ich denn falsch? Habe schon alles versucht was im o.g. Post zu einem ähnlichem Problem geschrieben wurde ...

  5. #4
    Neu an Board
    Registriert seit
    31.08.2008
    Beiträge
    3
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Problem gelöst:

    Also ...

    DirectPHP - Plugin installiert und den besagten PHP-Code als Beitrag eingebunden, und siehe da es funktioniert. Also nichts falsch gemacht.

    Ich denke dass joomla über den Wrapper nicht die richtige Instanz der Klasse bekommt und daher eine neue erzeugt, die natürlich lehr ist. Somit erhalte ich auch keine Benutzernamen und keine id des angemeldeten Benutzers.

    Wenn ich falsch liege mit meiner Vermutung bitte ich um Richtigstellung.

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein