Support » Allgemeine Fragen » Passwort timeout setzen

  • Gelöst keahnig

    (@keahnig)


    Bin recht neu hier und daher keine Ahnung wie ich dieses Problem löse:

    Ich habe auf einer Seite einen Seiten Login mit einem Passwort geschützt. Dieses Login sollte nach jeder Sitzung oder nach einer bestimmten Zeit zurückgesetzt werden, dass der User sich beim nächsten Mal wieder einloggen muss.

    Habe verschiedene Plugins probiert, keiner funktionierte bisher.

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • So funktioniert die WP-Passwortfunktion nicht. Da wird ein Cookie gesetzt. Solange der Cookie existiert, kann auf die Seite zugegriffen werden.

    Was ist jetzt deine Frage? Ob es ein Plugin gibt, welches das kann?

    Welche hast Du denn schon ausprobiert?

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    Hallo Torsten
    Danke für deine rasche Antwort.Ich habe alle Plugins ausprobiert, die ich unter „password timeout“ password logout“ im WordPress gefunden habe. Zusätzlich habe ich versucht den Code anzupassen im function.php auch ohne Erfolg.

    Gelesen habe ich, dass die Passwort funktion erst nach 10 Tagen „ausloggt“, standart mässig.

    Meine Frage ist nun, wie kann ich das Problem beheben, dass entweder nach dem Verlassen der Seite oder nach einer gewissen Zeit das Passwort erneut eingegeben werden muss.

    freundlichst grüssend

    Christof

    function keep_me_logged_in_for_1_year( $expirein ) {
        return 31556926; // 1 year in seconds
    }
    
    add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
    Thread-Starter keahnig

    (@keahnig)

    Vielen herzlichen Dank für die Antwort. Ich habe mich wohl nicht verständlich ausgedrückt, tschuldige bitte. Ich möchte genau das Gegenteil. Wenn man einloggt, soll das Passwort nur solange gespeichert werden wie man drin ist. Sobald der Browser geschlossen wird, automatisch auslogen. Das nächste mal muss das Passwort wieder eingegeben werden.

    Versuche mal den Wert 0 und schau, ob WP das so annimmt:

    Hat der Parameter den Wert 0 oder ist er nicht gesetzt, verfällt das Cookie am Ende der Session (wenn der Browser geschlossen wird).

    http://php.net/manual/de/function.setcookie.php

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    danke für die Antwort Torsten, entschuldige bitte kenn mich noch nicht so genau aus, wo soll ich das mit dem Parameter machen in welches php?

    Ich meinte den Rückgabewert in dem Code von pixolin. Der war ja 31556926 (entspricht 1 Jahr in Sekunden). Diesen Wert kannst Du auf 0 zu setzen versuchen, dann sollte, wenn die 0 auch tatsächlich benutzt wird, ein Cookie mit Ablaufzeit von 0 Sekunden gesetzt werden, was aus dem Cookie ein Session-Cookie macht, der nur bis zum Schließen des Browsers gilt. Sofern WordPress den Wert nicht ändert.

    Der Code gehört in die funtions.php eines Child Themes oder in ein Toolbox oder Code Snippet Modul. Oder du baust daraus ein Plugin.

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    war jetzt spannend hab den code so reingegeben mit wert null, da konnte ich mich bei WordPress nicht mal mehr anmelden 🙂 Aber das ist ja gar nicht mein Problem. Hab das wohl nicht klar ausgedrückt. Es geht um ein paar Seiten die Passwort geschützt sind, standartmässig von WordPress ohne plugin. Dort müssen die Besucher der Seite ein Passwort eingeben. So wie es jetzt ist, bleibt das Passwort drin auch wenn sie nach Tagen wieder rein gehen, werden sie nicht erneut aufgefordert das Passwort einzugeben. Das ist falsch. Die sollten nach jeder Session wieder eingeben müssen.

    So wie es jetzt ist, bleibt das Passwort drin auch wenn sie nach Tagen wieder rein gehen, werden sie nicht erneut aufgefordert das Passwort einzugeben. Das ist falsch. Die sollten nach jeder Session wieder eingeben müssen.

    Ja, aber genau dazu hatte ich dir schon eingangs geschrieben:

    So funktioniert die WP-Passwortfunktion nicht. Da wird ein Cookie gesetzt. Solange der Cookie existiert, kann auf die Seite zugegriffen werden.

    Hier eine Lösung mit „Log Out“-Funktion zum Löschen des Cookies:
    http://stackoverflow.com/questions/4902562/wordpress-protected-page-password-cookie

    Und hier eine zur Anpassung der Ablaufzeit des Cookies:
    http://wordpress.org/support/topic/page-protection-password?replies=19#post-4078552

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    Lieber Torsten ich danke dir für deine Geduld. Leider habe ich es immer noch nicht begriffen, ich habe jetzt im functions.php den code eingefügt:

    <?php
    $roots_includes = array(
    	'inc/init.php',
    	'inc/scripts.php',
    	'inc/customize.php',
    	'inc/template-tags.php',
    );
    
    foreach ( $roots_includes as $file ) {
    	if ( ! $filepath = locate_template( $file ) ) {
    		trigger_error( sprintf( __( 'Error locating %s for inclusion', 'flat' ), $file ), E_USER_ERROR );
    	}
    	require_once $filepath;
    }
    unset( $file, $filepath ); ?>
    <?php
    function removed_protected_title( $title )
    {
        return '%s';
    }
    add_filter('protected_title_format', 'removed_protected_title');
    add_action( 'wp', 'post_pw_sess_expire' );
        function post_pw_sess_expire() {
        if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
        // Setting a time of 900 in setcookie() forces the cookie to expire with the session
        setcookie('wp-postpass_' . COOKIEHASH, '', 900, COOKIEPATH);
    }

    jetzt ist es so, dass ich das passwort eingebe und sobald ich auf einen anderen internen link im Menu klicke die Aufforderung nach dem Passwort wieder erscheint. Was muss ich ändern?

    add_action( 'wp', 'post_pw_sess_expire' );
        function post_pw_sess_expire() {
        if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
        // Setting a time of 0 in setcookie() forces the cookie to expire with the session
        setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);
    }

    Nur bei 0 ist der Cookie auf die Session begrenzt. Der Wert 900 ergibt hier keinen Sinn, denn setcookie möchte als als expire-Paramter die Anzahl Sekunden seit Beginn der Epoche. Wenn Du 15 Minuten (900s/60s) einstellen möchtest, dann gehört vor das 900 noch ein time(). Siehe: http://php.net/manual/de/function.setcookie.php

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    Lieber Torsten

    Jetzt hat es endlich geklappt, herzlichen Dank. Ich habe jetzt den Wert etwas nach oben angepasst und time davor gesetzt. Deshalb hat es das nie erkannt vorher!

    Nochmals herzlichen Dank für deine Hilfe

    Gerne, ich lerne beim Suchen auch immer wieder dazu!

    Stelle das dann auf „Gelöst“.

    Gruß, Torsten

    Thread-Starter keahnig

    (@keahnig)

    ein geben und nehmen, wunderbar! Ja danke ist gelöst.

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Das Thema „Passwort timeout setzen“ ist für neue Antworten geschlossen.