Yoast\WP\SEO\MyYoast_Client\Infrastructure\Crypto
JWT_Signer::validate_time_claims
Validates RFC 7519 time-based claims (exp, nbf, iat).
Метод класса: JWT_Signer{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->validate_time_claims( $payload, $leeway ): void;
- $payload(массив) (обязательный)
- .
- $leeway(int) (обязательный)
- Clock-skew tolerance in seconds for exp/nbf.
Код JWT_Signer::validate_time_claims() JWT Signer::validate time claims Yoast 27.7
private function validate_time_claims( array $payload, int $leeway ): void {
$now = \time();
// RFC 7519 Section 4.1.4: reject expired tokens.
if ( isset( $payload['exp'] ) && ( $payload['exp'] + $leeway ) < $now ) {
throw new JWT_Validation_Exception( 'JWT has expired.' );
}
// RFC 7519 Section 4.1.5: reject tokens not yet valid.
if ( isset( $payload['nbf'] ) && $payload['nbf'] > ( $now + $leeway ) ) {
throw new JWT_Validation_Exception( 'JWT is not yet valid (nbf claim is in the future).' );
}
// RFC 7519 Section 4.1.6: reject tokens issued unreasonably far in the past.
if ( isset( $payload['iat'] ) && $payload['iat'] < ( $now - \HOUR_IN_SECONDS ) ) {
throw new JWT_Validation_Exception( 'JWT iat claim is too old.' );
}
}