auth_cookie_expiration() werkt alleen als je “onthoud mij” aanvinkt

Vraag:

Gebruik de WordPress onthoud mij functie om ingelogd te blijven.Ik kreeg de vraag of ik een WordPress website aan kon passen zodat ingelogde gebruikers 1 dag ingelogd zouden blijven.

Dit ongeacht of ze de browser sluiten of hun apparaat opnieuw opstarten. Voor de veiligheid moeten ze na een dag wel opnieuw inloggen.

Hiervoor heb ik onderstaande PHP code toegevoegd aan functions.php:

function custom_login_session($expiration) {
    $expiration = 86400 // in seconds;

    return $expiration;
}
add_filter('auth_cookie_expiration', 'custom_login_session', 99, 1);

Toelichting:

WordPress gebruikt een cookie om te bepalen hoelang je ingelogd mag blijven. Als je cookies zelf, via een programma of als je de browser sluit verwijderd zal de functie “ingelogd blijven” niet werken. Je moet de volgende keer meteen weer inloggen.

Met bovenstaande PHP code verleng je de duur van een sessie tot maximaal 1 dag. Met sessie wordt de tijd bedoelt dat je automatisch in de website ingelogd blijft.

Het werkt niet:

Het enige probleem is dat bovenstaande PHP code niet wordt uitgevoerd. Dit heeft als gevolg dat je meteen uitgelogd bent als je stopt met jouw sessie door bijvoorbeeld de browser te sluiten.

Antwoord:

Het antwoord is heel simpel.

WordPress voert “auth_cookie_expiration()” alleen uit als je op het inlogformulier “Onthoud mij” aanvinkt. Dit wordt binnen WordPress ook wel de “remberme” functie genoemd. Dit zie je tevens heel duidelijk als je de code van “wp_set_auth_cookie()” bekijkt.

Als je het vakje aanvinkt blijf je in combinatie met bovenstaande PHP functie 1 dag ingelogd. Dit kan je controleren door in de developer toolbar van de browser de cookies op te vragen. Controleer daarvoor de leeftijd van de cookie “wordpress_logged_in_*”.

Op internet kan je JS scripts vinden die standaard het vakje aanvinken. Helaas is er geen PHP optie voor die de functie Onthoud mij standaard aanzet.

> Lees ook hoe je kan inloggen in WordPress via een unieke eenmalige link

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.