Ist es möglich die Benutzertabelle von Joomla für eine externe Anwendung zu nutzen?

  • Hallo,


    ich habe geplant die Datenbanktabelle ####_users als Datenquelle für eine vom joomla-System unabhängige Anwendung zu benutzen.
    Das CMS und die andere Anwendung liegen physisch auf dem gleichen Server. Ich kann mich mit der Datenbank verbinden, Tabellen abfragen usw. alles schön.
    Woran ich scheitere, ist der Vergleich von Klartext Passwort und gehashtem Passwort. Wenn ich mein Klartextpasswort wie folgt maninpuliere:


    $md5_salz = md5("123456789");
    $md5_plainpw_salz = md5($password . $md5_salz);

    $joomlapwd = $md5_plainpw_salz. ":". $md5_salz;


    Wenn ich den Inhalt der Variable $joomlapwd in der Tabelle ####_users, Feld "password" des entsprechenden Nutzers speichere und mich dann am joomla-System anmelde, funktioniert das.
    Jedoch nützt mir das überhaupt nichts. Da ich ja den Wert für $md5_salz nicht kenne, den joomla bei der Generierung des gehashten Passwortes verwendet. Außerdem scheint
    der Inhalt des Feldes "password" noch mit irgendeiner anderen Funktion (vielleicht base64 ?) verändert zu werden. Jedenfalls sieht der Wert anders aus nachdem ich mich einmal
    an und wieder abgemeldet habe.
    Mein ursprünglicher Plan war einfach nur ganz dumm, Benutzername und Passwort-Hash mit den Werten in der Tabelle ####_users zu vergleichen und wenn eine schlüssige
    Kombination gefunden wurde, anzunehmen, dass der Anwender sich korrekt authentifiziert hat. Ist ja wahrscheinlich Quatsch...


    Das Skript...\libraries\joomla\user\helper.php beinhaltet eine Funktion namens "public static function verifyPassword($password, $hash, $user_id = 0)". Gibt es
    eine Möglichkeit diese Funktion in ein eigenes Skript einzubauen? Das besagte Skript liegt außerhalb von joomla und hat auch so nichts weiter mit joomla am Hut...
    Wahrscheinlich mache ich mich grad zum Alf, es wäre aber trotzdem schön wenn mir jemand einen Tipp geben könnte.


    Schon mal danke fürs lesen
    Chris

  • grundsätzlich ist es möglich die Joomla User DB für eine externe Anwendung mit zu verwandten wenn es eine web Anwendung ist wurde ich sie eher in Joomla einbinden. Mit md5 wirrst du nicht weiter kommen da joomla md5 nicht mehr einsetzt. Joomla verschlüsselt seine Passwort mit bcrypt aus der Historie von jommla kann es sein das Passworter noch nicht in bcrypt vorliegen diese müssen auch korrekt erkannt werden und neu verschlüsselt werden.


    http://php.net/manual/de/function.password-hash.php