We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7182
    • 11 Posts
    Hi,

    ich möchtet die von MODx gestartete Session von MODx auf einen gewissen Zeitraum begrenzen. Zur Zeit kann ich selbst nach 2 Stunden Inaktivität immer noch arbeiten, dies würde ich gern begrenzen. Kenn jemand vielleicht ein Möglichkeit dies einstellen zu können? Ich hab nur in der config.inc.php ein Funktion startCMSSession() gefunden, die so weit ich das gesehen hab vom WebLogin Snippet genutzt wird (ich kann mich auch irren)
    Hat jemand vielleicht eine Idee, wie man das in MODx implemetieren könnte?

    Gruß Sascha
      • 17883
      • 1,039 Posts
      Zur Zeit kann ich selbst nach 2 Stunden Inaktivität immer noch arbeiten

      Sicher? Lokaler Server oder Live-Server?
        • 7182
        • 11 Posts
        Hi,

        Linux Server (hängt im Intranet) der aber noch nicht Live ist. Ich kenne aber nicht die konkreten Einstellungen. Wodurch wird dies denn beim Live-Server beeinflußt?

        Gruß Sasscha
          • 28436
          • 242 Posts
          Grüß Dich
          Wodurch wird dies denn beim Live-Server beeinflußt?
          Kann ich Dir leider nicht beantworten.

          Allerdings kenn ich das Verhalten und habe heute Morgen, kurz nach Deinen Beitrag den Versuch gestartet.

          Zwei Stunden später, also jetzt.

          Am Server im Rechenzentrum war die Session nicht mehr gültig. Am Arbeitsplatzrechner auf dem auch ein Apache läuft ist die Session solange gültig, bis der Browser geschlossen wird. Auch wenn das Tab beispielsweise geschlossen wurde, kann ich noch ohne Anmeldung weitermachen wenn ich ein neues Tab mit der Adresse öffne. Leider ist mir vor ein paar Tagen auf dem Linux Server unterm Tisch die Festplatte verreckt, weshalb ich es da nicht versuchen konnte. Wäre wohl näher am Original als mit dem windowsapachen.

          ciao, Stefan
            • 21255
            • 215 Posts
            Die Session ist afaik auf 10 Minuten begrenzt (hardcoded). Solange das Manager-Interface offen ist, wird die Sitzung aber stets erneuert, damit es nicht zu den lästigen Timeouts (wie in früheren Versionen wink ) kommt. Probiere mal aus was passiert, wenn Du vom Manager aus auf eine neue Seite wechselst (Browser *nicht* schließen) und nach 10 Minuten wieder zurückkommst. Du solltest dann nicht mehr eingeloggt sein.

            Nachtrag zu stefan:
            Am Arbeitsplatzrechner auf dem auch ein Apache läuft ist die Session solange gültig, bis der Browser geschlossen wird.
            Die Session ist auch nach Schließen des Browserfensters noch gültig, es fehlt nur das Cookie mit der Session-ID, da dieses auf eine Browsersitzung beschränkt ist. Deshalb immer "richtig" ausloggen wink
              • 17883
              • 1,039 Posts
              Weiß ich nicht. Mir kommt es nur so vor (warum auch immer), dass lokal die Sessiontime länger ist als live... was dafür sprechen würde, dass nicht nur die Einstellungen in MODx zum Tragen kommen.

              edit: Na, das ist wohl eine Erklärung (lokal Browser/Manager immer auf). Danke Netnoise&Stefan.
                • 28436
                • 242 Posts
                Die Session ist auch nach Schließen des Browserfensters noch gültig, es fehlt nur das Cookie mit der Session-ID
                Natürlich.

                Aber was ist mit dem gefühltem längerem angemeldet sein in lokaler Umgebung? Das es so ist, habe ich vorhin definitiv festgestellt, obwohl es mir vorher auch schon irgendwie (gefühlt) klar war. Hast Du a auch eine Idee?

                ciao, Stefan
                  • 17883
                  • 1,039 Posts
                  Wie gesagt, ich denke das liegt daran, dass man lokal immer das Manager-Fenster auf hat... Müsste man mal genauer testen (also Manager-Fenster zumachen und warten).
                    • 21255
                    • 215 Posts
                    Quote from: stefan at Jun 14, 2007, 06:40 AM

                    Aber was ist mit dem gefühltem längerem angemeldet sein in lokaler Umgebung? Das es so ist, habe ich vorhin definitiv festgestellt, obwohl es mir vorher auch schon irgendwie (gefühlt) klar war. Hast Du a auch eine Idee?

                    Kannst Du mal folgendes Snippet sowohl lokal als auch auf’m Webserver ausführen, und die Ausgabe posten?

                    <?php
                    return '#'.$modx->config['session.cookie.lifetime'].'#';
                    ?>
                    
                      • 28436
                      • 242 Posts
                      Grüß Dich,

                      auf der Fährte war ich auch schon, aber der Wert ist der aus der Datenbanktabelle(modx_system_settings) nämlich "604800" was 70 7 Tage wären. Ich glaube das soll für die cookies von angemeldeten Webnutzern gelten. Habs aber noch nicht geprüft.

                      Für die Administration ist laut config
                                  if (isset ($_SESSION['modx.' . $contextKey . '.session.cookie.lifetime']) && is_numeric($_SESSION['modx.' . $contextKey . '.session.cookie.lifetime'])) {
                                      $cookieLifetime= intval($_SESSION['modx.' . $contextKey . '.session.cookie.lifetime']);
                                  }
                      diese Lebenszeitangabe relevant. die ist aufgelöst allerdings "0" wertig...
                      Array(
                      ...
                      [modx.mgr.session.cookie.lifetime] => 0
                      ...
                      )

                      Sehr verwirrend. Wenn man bedenkt, das die nächsten Zeilen in der config wie folgt lauten
                                  if ($cookieLifetime) {
                                      $cookieExpiration= time() + $cookieLifetime;
                                  }


                      Hoppla, wenn ich das versuche mit meinem Hasenhirn zu interpretieren, stelle ich fest, daß "die aktuelle Zeit"+ "0 Sekunden" ja ein dauerlogout bedeuten würde. Faktisch ist das ja nicht der Fall, was mich wiederum dazu bringt einzusehen, daß ich halt schlicht zu "dabbich" bin.

                      Tja, so siehts aus.

                      Hast Du es eigentlich mal versucht, auf Deiner heimischen Kiste, die Session ablaufen zu lassen?


                      Nachtrag: Das beschriebene gilt nur für die lokale Umgebung, auf dem Live-Server sieht die Sache bisschen anderst aus, da steht der Wert "604800" auch in der Sitzungsdatei
                      [modx.mgr.session.cookie.lifetime] => 604800

                      Verdammt.... das sind Millisekunden dann passt das mit den 10min

                      Der "Fehler" ist dann halt das lokal der besagte Sessionwert "0" ist.


                      Warum ich oben auf 70 Tage komme ist natürlich ein Fehler sollte 7 heißen, weil ich von Sekunden ausgegangen bin. Laut php.net/setcookie zu Parameter "expire"
                      .... plus der Anzahl Sekunden bis zum gewünschten Ablauf des Cookies setzen.