it-swarm.com.de

Welche Datei kümmert sich eigentlich um den "Logout" -Prozess? (Tötungssitzungen)

Ich lerne das Grundkonzept zum Verwalten von Anmeldeprozessen und Sitzungen. Ich gehe davon aus, dass Sie zum Abmelden eines Benutzers die für ihn erstellte Sitzung zerstören müssen. Ich habe versucht herauszufinden, wie Joomla 3.4 mit "Abmelden" umgeht, um zu überprüfen, ob ich richtig verstanden habe, was ich gelernt habe. Aber ich habe Probleme herauszufinden, welche PHP Datei sich tatsächlich um die "Logout" -Logik kümmert. Hier ist, was ich tue:

Erstens denke ich, egal welche (für mich) schicke Bibliothek oder welches Framework Joomla verwendet, es sollte eine Datei geben, die "$ _POST" -Daten enthält, also habe ich $_POST unter allen PHP Dateien auf meiner Site, und ich fand diese Datei "libraries/legacy/request/request.php" mit dieser Funktion

Class JRequest{
    .....
    public static function getVar($name, $default = null, $hash = 'default', $type = 'none', $mask = 0)
    {
        // Ensure hash and type are uppercase
        $hash = strtoupper($hash);

        if ($hash === 'METHOD')
        {
            $hash = strtoupper($_SERVER['REQUEST_METHOD']);
        }

        $type = strtoupper($type);
        $sig = $hash . $type . $mask;

        // Get the input hash
        switch ($hash)
        {
            case 'GET':
                $input = &$_GET;
                break;
            case 'POST':
                $input = &$_POST;
                break;
            case 'FILES':
                $input = &$_FILES;
                break;
            case 'COOKIE':
                $input = &$_COOKIE;
                break;
            case 'ENV':
                $input = &$_ENV;
                break;
            case 'SERVER':
                $input = &$_SERVER;
                break;
            default:
                $input = &$_REQUEST;
                $hash = 'REQUEST';
                break;
        }
.....

Mir scheint, dass Joomla die Datenverarbeitung "$ _POST" in diese Funktion integriert hat. Wenn Joomla also mit Benutzereingaben umgehen möchte, wird diese Funktion aufgerufen. Also suche ich weiter JRequest::getVar Unter allen PHP Dateien habe ich nur 1 Vorkommen gefunden, das ist in components/com_meida/views/medialist/view.html.php Zeile 64

$dirname = JRequest::getVar('folder', '', '', 'string');

Dies scheint nichts mit der An-/Abmeldeverarbeitung zu tun zu haben. Also habe ich meine Suche auf nur getVar erweitert, obwohl es viele Vorkommen gibt, sieht keines von ihnen relevant aus und hier blieb ich stecken.

Könnten Sie bitte nicht nur auf die gesuchte PHP Datei hinweisen, sondern mir auch mitteilen, was an meinem Ansatz falsch ist? Vielen Dank im Voraus.

2
shenkwen

JRequest::getVar Ist eine alte veraltete Methode zum Abrufen globaler Variablen, die in Joomla 3.x nicht mehr verwendet wird

Session:

Joomla hat ein eigenes Framework, das hier zu finden ist:

libaries/joomla /

Die Datei, nach der Sie speziell suchen, um die Sitzung zu zerstören, lautet:

libraries/joomla/session/session.php Zeile 682

Siehe auf Github hier: https://github.com/joomla/joomla-cms/blob/staging/libraries/joomla/session/session.php#L682

Wie Sie sehen können, ruft dies $this->_handler->clear(); auf, und die Funktion dafür ist hier: https://github.com/joomla/joomla-cms/blob/staging/libraries/joomla/session /handler/native.php#L24

Dies setzt die Sitzung außer Kraft und zerstört sie


Ausloggen:

Wenn Sie noch weiter zurückgehen möchten, bevor die Sitzung behandelt wird, schauen Sie sich Folgendes an:

administrator/components/com_login/controller.php line 97

3
Lodder