Quelle est la façon la plus simple d'empêcher WP de me déconnecter

28

Après un certain temps, WP déconnecte tous les utilisateurs et les force à se reconnecter. Pour les environnements de développement sur ma machine locale, cela est désagréable et absolument inutile.

Existe-t-il un moyen piloté par l'API de désactiver indéfiniment la déconnexion automatique? Idéalement, j'aimerais quelque chose à ajouter wp-config.phpavec d'autres paramètres liés à la configuration des développeurs.

Un plugin serait exagéré pour moi, donc je ne considérerai pas cela comme une réponse, mais vous pourriez aussi bien le poster en option.

jerclarke
la source

Réponses:

27

Par défaut, la case à cocher "Se souvenir de moi" vous permet de vous souvenir de vous pendant 14 jours. C'est filtrable cependant.

Ce code va changer cette valeur:

add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );

function keep_me_logged_in_for_1_year( $expirein ) {
    return 31556926; // 1 year in seconds
}
Viper007Bond
la source
1
C'est exactement ce dont j'avais besoin. Je pense qu'une constante pour cette valeur serait vraiment utile, mais un filtre est la prochaine meilleure chose. Je pourrais même l'utiliser create_function()pour le faire sur une seule ligne.
jerclarke
2
create_function()est lent et rend difficile le retrait du filtre. Il est recommandé d'utiliser une fonction. :)
Viper007Bond
Vous pouvez même obtenir une version récente de PHP et l'écrire en tant que fermeture: php.net/manual/en/functions.anonymous.php - WordPress le supporte. Ne vous mettez pas sur votre chemin et n'utilisez plus create_function (). Ça craint.
hakre
1
YEAR_IN_SECONDSpeut être utilisé à la place 31556926. Il y a aussi d'autres constantes. (Voir wp-includes/default-constants)
Upeksha
1
@Upeksha: Au moment où cette réponse a été écrite, ces constantes n'existaient pas. ;) Vous avez raison cependant que maintenant qu'ils le font, il serait préférable de les utiliser.
Viper007Bond
4

Cela a plus à voir avec la façon dont votre navigateur stocke les cookies. Lorsque vous vous connectez, il doit enregistrer le cookie et WordPress le lit pour voir si vous êtes authentifié (du moins c'est ce que je comprends).

Sur toutes les installations de développement locales, mon nom d'utilisateur est admin et mon mot de passe est admin. Je ne trouve pas que 8 lettres soient vraiment un gros problème mais peut-être que je tape plus vite?

Curtismchale
la source
J'utilise des sauvegardes des bases de données en direct, et dans celles-ci, j'ai toujours des mots de passe forts sur tous les comptes d'administrateur. J'ai également souvent des noms d'utilisateur différents pour différents sites, et dans de nombreux cas, Firefox a du mal à différencier mes différentes installations locales à des fins de saisie semi-automatique.
jerclarke
Exactement, les paramètres de votre navigateur écraseront la fonction Se souvenir de moi.
Brad Dalton
-2

Est-ce que cela fonctionne, si vous le placez dans wp-config.php?

function wp_validate_auth_cookie($cookie='',$scheme='') {
    return 1; // admin user id
}

Pas complètement testé. Il ne s'agit pas tant de «ne jamais me déconnecter» mais plutôt de «traiter tout le monde en tant qu'administrateur».

Annika Backstrom
la source
5
NE JAMAIS UTILISER EN PRODUCTION !!! Cela ressemble à une installation sandbox.
Arlen Beiler
2
NE LE FAITES PAS ou vous serez rapidement piraté!
T.Todua