Trick # 601 | Dieser Beitrag beinhaltet 0 Wörter. – Geschätzte Lesezeit: ca. 0 Minuten.
Wenn es darum geht, die Sicherheit und Performance Ihrer WordPress-Website zu optimieren, spielt die Verwaltung eingeloggter Benutzer eine entscheidende Rolle. Eine der bewährten Methoden, um die Sicherheit zu erhöhen, ist ein automatisches Logout nach einer bestimmten Zeit der Inaktivität. In diesem Beitrag zeigen wir, wie Sie mit einem einfachen Code-Snippet eine solche Funktion umsetzen können.
Unbegrenzte Sitzungszeiten für eingeloggte Benutzer können Risiken bergen, insbesondere bei gemeinsam genutzten oder öffentlichen Geräten. Durch ein automatisches Logout können Sie sicherstellen, dass Benutzer, die ihre Sitzung unbeaufsichtigt lassen, nach einer vorgegebenen Zeit automatisch abgemeldet werden. Das folgende Code-Beispiel implementiert eine automatische Logout-Funktion, die Benutzer nach 60 Minuten Inaktivität abmeldet.
Fügen Sie es in die Datei functions.php Ihrer Website ein. Das bewerkstelligen Sie im Backend unter Design/Theme-Datei-Editor:
// Automatisches Logout nach 60 Minuten Inaktivität
function dr_code_auto_logout() {
?>
<script type="text/javascript">
(function() {
var timeout = <?php echo 60 * 60 * 1000; ?>; // 60 Minuten in Millisekunden
var ajaxUrl = '<?php echo admin_url('admin-ajax.php'); ?>';var timeoutTimer;function resetTimer() {
clearTimeout(timeoutTimer);
timeoutTimer = setTimeout(function() {
// Logout via AJAX
var xhr = new XMLHttpRequest();
xhr.open('POST', ajaxUrl, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('action=dr_code_logout_user');
}, timeout);
}// Timer zurücksetzen bei Benutzeraktivität
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
document.ontouchstart = resetTimer;
document.onclick = resetTimer;
})();
</script>
<?php
}
add_action('wp_footer', 'dr_code_auto_logout');// AJAX-Handler zum Ausloggen des Benutzers
function dr_code_logout_user() {
if (is_user_logged_in()) {
wp_logout();
wp_send_json_success('User logged out successfully');
} else {
wp_send_json_error('User is not logged in');
}
}
add_action('wp_ajax_dr_code_logout_user', 'dr_code_logout_user');
add_action('wp_ajax_nopriv_dr_code_logout_user', 'dr_code_logout_user');Der Code überwacht Mausbewegungen, Tastendrücke, Touch-Gesten und Klicks. Bei jeder Aktivität wird der Timer zurückgesetzt. Bleibt der User 60 Minuten inaktiv, sendet das Script einen Logout-Befehl an den Server. Der User verbleibt dann auf der aktuelle Seite, kann aber ohne neues Login auf keine weiteren «gesperrten» Inhalte zugreifen.
Den Zeitraum für den Logout können Sie natürlich anpassen. Er wird in Zeile 6 berechnet: Im obigen Beispiel 60 (Minuten) x 60 (Sekunden) x 1000 (Millisekunden).
Werbung


