WP_Recovery_Mode_Key_Service::validate_recovery_mode_key()
Verifies if the recovery mode key is correct.
Recovery mode keys can only be used once; the key will be consumed in the process.
Method of the class: WP_Recovery_Mode_Key_Service{}
No Hooks.
Return
true|WP_Error
. True on success, error object on failure.
Usage
$WP_Recovery_Mode_Key_Service = new WP_Recovery_Mode_Key_Service(); $WP_Recovery_Mode_Key_Service->validate_recovery_mode_key( $token, $key, $ttl );
- $token(string) (required)
- The token used when generating the given key.
- $key(string) (required)
- The unhashed key.
- $ttl(int) (required)
- Time in seconds for the key to be valid for.
Notes
- Global. PasswordHash. $wp_hasher Portable PHP password hashing framework instance.
Changelog
Since 5.2.0 | Introduced. |
WP_Recovery_Mode_Key_Service::validate_recovery_mode_key() WP Recovery Mode Key Service::validate recovery mode key code WP 6.7.2
public function validate_recovery_mode_key( $token, $key, $ttl ) { global $wp_hasher; $records = $this->get_keys(); if ( ! isset( $records[ $token ] ) ) { return new WP_Error( 'token_not_found', __( 'Recovery Mode not initialized.' ) ); } $record = $records[ $token ]; $this->remove_key( $token ); if ( ! is_array( $record ) || ! isset( $record['hashed_key'], $record['created_at'] ) ) { return new WP_Error( 'invalid_recovery_key_format', __( 'Invalid recovery key format.' ) ); } if ( empty( $wp_hasher ) ) { require_once ABSPATH . WPINC . '/class-phpass.php'; $wp_hasher = new PasswordHash( 8, true ); } if ( ! $wp_hasher->CheckPassword( $key, $record['hashed_key'] ) ) { return new WP_Error( 'hash_mismatch', __( 'Invalid recovery key.' ) ); } if ( time() > $record['created_at'] + $ttl ) { return new WP_Error( 'key_expired', __( 'Recovery key expired.' ) ); } return true; }