Aktueller Standort: Startseite> Neueste Artikel> Wie gehe ich mit Login Timeout um? Verwenden

Wie gehe ich mit Login Timeout um? Verwenden

M66 2025-06-30

1. Grundprinzipien der Anmeldung Zeitlimit

Wenn sich der Benutzer erfolgreich anmeldet, erstellt das System eine Sitzung dafür und die Identitätsinformationen des Benutzers werden über die Sitzung verwaltet. In einigen Systemen, um die Sicherheit zu verbessern oder die potenziellen Risiken durch längere Müßiggang zu vermeiden, werden in der Regel für die Anmeldesitzung des Benutzers Zeitüberschreitungsgrenzen festgelegt.

Häufige Behandlungsmethoden umfassen:

  1. Einstellung der Sitzungsgültigkeitsdauer : Wenn der Benutzer innerhalb eines bestimmten Zeitraums keine Vorgänge ausführt, läuft die Sitzung automatisch ab und verlangt von Ihnen, sich erneut anzumelden.

  2. Front-End-Überwachung : Das Front-End kann Benutzeroperationen überwachen (z. B. Klicks, Tastatureingang usw.). Sobald das Timeout angezeigt wird, wird ein Eingabeaufforderungstich angezeigt, sodass sich der Benutzer erneut anmelden muss.

Das SessionIDInterface von PHP bietet einen direkteren Mechanismus für Sitzungs- und Zeitlimitprobleme.


2. Einführung in SessionIDInterface

SessionIDInterface ist eine Schnittstelle für die Sitzungsverwaltung in PHP. Es ermöglicht Entwicklern, die Generation und das Management von Sitzungs -IDs anzupassen. Diese Schnittstelle bietet mehrere Möglichkeiten zur Verbesserung der Sitzungssteuerung, insbesondere mit Vorteilen bei der Implementierung von automatischem Abmelden und Relogin.

1. Erstellen Sie die SessionIDInterface -Klasse

Zunächst müssen wir eine Klasse erstellen, die SessionIDInterface implementiert. In dieser Klasse können wir die Bestimmung des Timeouts und des Login -Status der Sitzung verwalten.

 class SessionManager implements SessionIdInterface {
    private $sessionTimeout;
    
    public function __construct($timeout = 1800) {
        $this->sessionTimeout = $timeout; // Das Standard -Timeout wird auf eingestellt1800Zweite(Im Augenblick30Minute)
    }

    public function startSession() {
        session_start();
        $this->checkSessionTimeout();
    }

    private function checkSessionTimeout() {
        if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $this->sessionTimeout) {
            // Wenn Auszeit,Automatisches Abmelden
            session_unset();
            session_destroy();
            header("Location: http://m66.net/login"); // Automatisch auf Anmeldeseite umleiten
            exit();
        }
        $_SESSION['last_activity'] = time(); // Aktualisieren Sie die letzte Betriebszeit
    }

    public function setSessionData($key, $value) {
        $_SESSION[$key] = $value;
    }

    public function getSessionData($key) {
        return isset($_SESSION[$key]) ? $_SESSION[$key] : null;
    }

    public function destroySession() {
        session_unset();
        session_destroy();
    }
}

2. Verwenden Sie die SessionManager -Klasse

In der tatsächlichen Verwendung kann die SessionManager -Klasse in jedes PHP -Programm integriert werden, das das Sitzungsmanagement erfordert. Wenn sich ein Benutzer anmeldet, kann diese Klasse auf folgende Weise aufgerufen werden, um Sitzungszeitüberschreitungen zu verwalten.

 // Initialisieren Sie den Sitzungsmanager
$sessionManager = new SessionManager(1800); // Stellen Sie die Auszeit auf1800Zweite

// Starten Sie eine Sitzung
$sessionManager->startSession();

// Überprüfen Sie, ob Sie angemeldet sind
if ($sessionManager->getSessionData('user_id') === null) {
    // Benutzer nicht angemeldet,Springen Sie zur Anmeldeseite
    header("Location: http://m66.net/login");
    exit();
}

3.. Automatische Abmelde- und Re-Login-Mechanismus

Über die oben genannte SessionManager -Klasse implementieren wir einen automatischen Abmeldemechanismus. Nachdem die festgelegte Zeit die festgelegte Zeit überschreitet, wird der Benutzer automatisch angemeldet und auf die Anmeldeseite umgeleitet. Es reicht jedoch nicht aus, automatisches Abmelden zu implementieren, und der Re-Login-Mechanismus ist auch sehr wichtig, insbesondere nach der Sitzungszeitüberschreitung ist es eine Frage, die es wert ist, in Betracht gezogen zu werden.

1. Front-End-Eingabeaufforderungen

Um Benutzer zu verbessern, können Sie einige Eingabeaufforderungen am vorderen Ende vornehmen. Wenn beispielsweise die Sitzung des Benutzers abgelaufen ist, kann ein Eingabeaufforderungsfeld aufgetaucht werden, um den Benutzer zu fordern, ob sich weiterhin sich anmelden soll, oder das Anmeldefeld wird direkt nach der Zeitüberschreitung aufgetaucht.

 // Nach Anmeldetimeter,Umleiten
header("Location: http://m66.net/login");
exit();