Printess Editor: Session Keep-Alive

Printess Editor: Session Keep-Alive

Ab Version 8.27.0

Beschreibung

Wenn ein Benutzer den Printess-Editor im Shop geöffnet hat, werden keine regulären Server-Anfragen an den Shop gestellt, da die Bearbeitung vollständig im Printess-Editor (extern) stattfindet. Läuft die PHP-Session ab, schlägt die nächste Aktion (z.B. Autosave, Warenkorb-Ablage) mit einem 403-Fehler fehl. In diesem Fall wird der Benutzer per Hinweismeldung informiert und automatisch zur Login-Seite weitergeleitet. Nach dem erneuten Login wird er direkt zum letzten Bearbeitungsstand im Editor zurückgeführt -- die Arbeit geht also nicht verloren, der Ablauf ist für den Benutzer jedoch umständlich und unterbricht den Bearbeitungsfluss.

Um diesen Umweg zu vermeiden, sendet das Session Keep-Alive automatisch im Hintergrund eine Anfrage an den Shop-Server, um die PHP-Session aktiv zu halten -- aber nur, solange der Benutzer tatsächlich aktiv ist. Vergessene oder inaktive Tabs halten die Session nicht dauerhaft am Leben. Der Session-Ablauf mit Weiterleitung greift weiterhin als Fallback, falls das Keep-Alive die Session nicht rechtzeitig verlängern konnte (z.B. bei langer Inaktivität oder Netzwerkproblemen).

Funktionsumfang

  • Automatischer Session-Refresh alle 10 Minuten im Hintergrund

  • Aktivitätserkennung: Nur bei tatsächlicher Benutzeraktivität wird die Session verlängert

  • Unsaved-Changes-Schutz: Auch bei kurzfristiger Inaktivität wird die Session gehalten, wenn nicht gespeicherte Änderungen vorliegen (nur in der API-Variante)

  • Automatische Weiterleitung zur Login-Seite, wenn die Session trotzdem abgelaufen ist


Funktionsweise

Zwei Editor-Varianten

Der Printess-Editor existiert in zwei technischen Varianten, die sich in der Aktivitätserkennung unterscheiden:

Panel UI (moderner Editor):
Der Editor wird über die JavaScript-API direkt in die Seite eingebettet. Benutzerinteraktionen (Klicken, Tippen, Scrollen) werden direkt auf der Seite erkannt.

alter Editor (veraltet):
Der Editor läuft in einem Fullscreen-iframe. Da Interaktionen innerhalb eines Cross-Origin-iframes nicht vom übergeordneten Dokument erkannt werden können, wird stattdessen die Tab-Sichtbarkeit als Aktivitätsindikator verwendet.

Wann wird die Session verlängert?

Panel UI (moderner Editor):

Benutzer aktiv (letzte 15 Min)

Tab sichtbar

Ungespeicherte Änderungen

Session wird verlängert

Ja

egal

egal

Ja

Nein

Ja

Ja

Ja

Nein

Ja

Nein

Nein

Nein

Nein

Ja

Nein

Nein

Nein

Nein

Nein

alter Editor (veraltet):

Tab sichtbar (letzte 15 Min)

Session wird verlängert

Ja

Ja

Nein

Nein


Konfiguration

Das Session Keep-Alive ist nicht konfigurierbar und automatisch für alle Shops aktiv, in denen das Printess-Modul aktiviert ist. Die Parameter sind fest definiert:

Parameter

Wert

Beschreibung

Intervall

10 Minuten

Wie oft der Keep-Alive-Request gesendet wird

Aktivitäts-Schwelle

15 Minuten

Wie lange die letzte Aktivität her sein darf

Throttle

30 Sekunden

Wie oft die Aktivitätserkennung aktualisiert wird (Performance-Schutz)


Häufige Fragen (FAQ)

Warum verliert ein Benutzer trotzdem seine Session?

Mögliche Ursachen:

  1. Tab im Hintergrund -- Wenn der Benutzer den Browser-Tab mit dem Editor in den Hintergrund schiebt und länger als 60 Minuten nicht zurückkehrt, läuft die Session regulär ab. Dies ist beabsichtigt, um vergessene Tabs nicht dauerhaft aktiv zu halten.

  2. Browser geschlossen / Standby -- Wenn der Computer in den Ruhezustand geht oder der Browser geschlossen wird, können keine Keep-Alive-Requests gesendet werden.

  3. Netzwerkprobleme -- Wenn der Keep-Alive-Request den Server nicht erreicht, wird die Session nicht verlängert.

Belastet das Keep-Alive den Server?

Nein. Der Endpunkt führt nur eine minimale Session-Prüfung durch (kein Datenbankzugriff, keine aufwändige Logik). Ein Request alle 10 Minuten pro aktivem Editor-Benutzer ist vernachlässigbar.

Kann das Keep-Alive deaktiviert werden?

Nein, das Keep-Alive ist fester Bestandteil des Printess-Editor-Moduls und kann nicht separat deaktiviert werden. Es ist nur aktiv, wenn das Printess-Modul selbst für den Shop aktiviert ist.

Warum unterscheiden sich die beiden Editor-Varianten?

Der iframe-Editor läuft in einem Cross-Origin-iframe, der die gesamte Seite einnimmt. Der übergeordnete Browser-Tab kann Benutzerinteraktionen innerhalb dieses iframes nicht erkennen (Sicherheitseinschränkung des Browsers). Daher wird in dieser Variante die Tab-Sichtbarkeit als Aktivitätsindikator verwendet: Solange der Tab sichtbar ist, wird angenommen, dass der Benutzer den Editor nutzt.

Der API-Editor wird direkt in die Seite eingebettet und kann echte Benutzerinteraktionen (Klicks, Tastatureingaben, Scrollen) erkennen. Zusätzlich wird als Sicherheitsnetz geprüft, ob nicht gespeicherte Änderungen vorliegen -- aber nur, wenn der Tab auch sichtbar ist (um vergessene Hintergrund-Tabs auszuschließen).