WordPress : WordPress – Effacer les champs de connexion sur des informations d’identification incorrectes
J’ai trouvé cet extrait de code sur le Web à insérer dans mon function.php
fichier pour personnaliser le message d’erreur afin qu’il soit plus sécurisé :
// custom the login error message
function customize_login_errors(){
return 'The login credentials are incorrect.';
}
add_filter( 'login_errors', 'customize_login_errors' );
Bien que j’ai trouvé une faille.
Si le nom d’utilisateur est incorrect, le champ de saisie du nom d’utilisateur est effacé avec le mot de passe. Parfait, juste ce que je veux. Cependant, si j’entre le nom d’utilisateur correctement, l’entrée du champ reste lors de la saisie d’un mot de passe invalide. Bien que ce soit plus sûr que le message d’erreur par défaut, il permet toujours aux invités indésirables de savoir s’ils ont deviné un nom d’utilisateur valide.
Comment puis-je aller plus loin et clear both the username/email and password fields
lors de la saisie d’informations d’identification invalides ?
Solution n°1 trouvée
J’injecterais l’extrait de code javascript suivant dans la page de connexion lorsque la connexion échoue !
Mettez ce javascript dans un fichier appelé, disons,custom_error_login.js
jQuery(document).ready(async function ($) {
await new Promise(r => setTimeout(r, 200));
$("input#user_pass").val("").blur();
$("input#user_login").val("").focus();
});
Et puis mettez l’extrait suivant dans votre functions.php
enfant/thème actif et utilisez le crochet suivant pour l’injecter dans la page de connexion après l’échec de la connexion !!!
add_filter('login_errors', 'my_custom_login_failure');
function my_custom_login_failure()
{
global $errors;
$error_codes = $errors->get_error_codes();
// Invalid username.
if (in_array('invalid_username', $error_codes)) {
$error = '<strong>Invalid credentials!!!</strong>';
}
// Incorrect password.
if (in_array('incorrect_password', $error_codes)) {
$error = '<strong>Invalid credentials!!!</strong>';
}
remove_action('login_footer', 'wp_shake_js', 12); // removing the shaking effect of the form, snippet could work without this line too!!!
wp_enqueue_script('jquery');
wp_enqueue_script('my_custom_login_script', get_theme_file_uri('path/to/js_folder/custom_error_login.js'), 'JQuery', "1.0", TRUE);
return $error;
}
0 commentaire