Yoast\WP\SEO\MyYoast_Client\Infrastructure\Crypto

JWT_Signer::validate_time_claimsprivateYoast 1.0

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() 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.' );
	}
}