Vogliamo condividere con voi le migliori informazioni che abbiamo trovato online. Ci auguriamo che lo troviate utile e se potete condividere eventuali miglioramenti sentitevi liberi di farlo.
Recupera una riga di utente in base alla chiave di reimpostazione della password e al login
Descrizione
Una chiave è considerata "scaduta" se corrisponde esattamente al valore del campo chiave_di_attivazione_utente, anziché essere abbinata dopo il processo di hashing. Questo campo è ora un hashed; I vecchi valori non sono più accettati, ma hanno un codice WP_Error diverso, in modo da poter fornire un buon feedback agli utenti.
Parametri
- $chiave
-
(stringa)(Richiesto)Hash per convalidare la password dell'utente che invia.
- $login
-
(stringa)(Richiesto)Il login dell'utente.
Ritorno
(WP_User|WP_Error) Oggetto WP_User in caso di successo, oggetto WP_Error in caso di chiavi non valide o scadute.
Fonte
File: wp-includes/user.php
functioncheck_password_reset_key($key,$login){global$wpdb,$wp_hasher;$key=preg_replace('/[^a-z0-9]/i','',$key);if(empty($key)||!is_string($key)){returnnewWP_Error('invalid_key',__('Invalid key.'));}if(empty($login)||!is_string($login)){returnnewWP_Error('invalid_key',__('Invalid key.'));}$user=get_user_by('login',$login);if(!$user){returnnewWP_Error('invalid_key',__('Invalid key.'));}if(empty($wp_hasher)){require_onceABSPATHWPINC'/class-phpass.php';$wp_hasher=newPasswordHash(8,true);}/** * Filters the expiration time of password reset keys. * * @since 4.3.0 * * @param int $expiration The expiration time in seconds. */$expiration_duration=apply_filters('password_reset_expiration',DAY_IN_SECONDS);if(false!==strpos($user->user_activation_key,':')){list($pass_request_time,$pass_key)=explode(':',$user->user_activation_key,2);$expiration_time=$pass_request_time+$expiration_duration;}else{$pass_key=$user->user_activation_key;$expiration_time=false;}if(!$pass_key){returnnewWP_Error('invalid_key',__('Invalid key.'));}$hash_is_correct=$wp_hasher->CheckPassword($key,$pass_key);if($hash_is_correct&&$expiration_time&&time()<$expiration_time){return$user;}elseif($hash_is_correct&&$expiration_time){// Key has an expiration time that's passed.returnnewWP_Error('expired_key',__('Invalid key.'));}if(hash_equals($user->user_activation_key,$key)||($hash_is_correct&&!$expiration_time)){$return=newWP_Error('expired_key',__('Invalid key.'));$user_id=$user->ID;/** * Filters the return value of check_password_reset_key() when an * old-style key is used. * * @since 3.7.0 Previously plain-text keys were stored in the database. * @since 4.3.0 Previously key hashes were stored without an expiration time. * * @param WP_Error $return A WP_Error object denoting an expired key. * Return a WP_User object to validate the key. * @param int $user_id The matched user ID. */returnapply_filters('password_reset_key_expired',$return,$user_id);}returnnewWP_Error('invalid_key',__('Invalid key.'));}
Correlato
Utilizzi
Usi | Descrizione |
---|---|
wp-includes/user.php: password_reset_expiration |
Filtra il tempo di scadenza delle chiavi di reset della password. |
wp-includes/compat.php: hash_equals() |
Attacco al tempo per un confronto sicuro tra stringhe |
wp-includes/l10n.php: __() |
Recupera la traduzione di $testo. |
wp-includes/pluggable.php: get_user_by() |
Recupera le informazioni sull'utente in base a un determinato campo |
wp-includes/plugin.php: applica_filtri() |
Richiama le funzioni di callback che sono state aggiunte a un gancio per filtri. |
wp-includes/user.php: password_reset_key_expired |
Filtra il valore di ritorno di check_password_reset_key() quando viene usata una chiave vecchio stile. |
wp-includes/class-wp-error.php: WP_Error::__construct() |
Inizializza l'errore. |
Changelog
Versione | Descrizione |
---|---|
3.1.0 | Introdotto. |