Yoast\WP\SEO\MyYoast_Client\Domain

Discovery_Document::validate_server_capabilitiesprivate staticYoast 1.0

Validates that the server advertises support for all required features.

Метод класса: Discovery_Document{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$result = Discovery_Document::validate_server_capabilities( $config ): void;
$config(массив) (обязательный)
.

Код Discovery_Document::validate_server_capabilities() Yoast 28.3

private static function validate_server_capabilities( array $config ): void {
	$checks = [
		[
			'field'    => 'code_challenge_methods_supported',
			'required' => 'S256',
			'message'  => 'Server does not support S256 PKCE code challenge method.',
		],
		[
			'field'    => 'grant_types_supported',
			'required' => 'authorization_code',
			'message'  => 'Server does not support authorization_code grant type.',
		],
		[
			'field'    => 'grant_types_supported',
			'required' => 'refresh_token',
			'message'  => 'Server does not support refresh_token grant type.',
		],
		[
			'field'    => 'grant_types_supported',
			'required' => 'client_credentials',
			'message'  => 'Server does not support client_credentials grant type.',
		],
		[
			'field'    => 'token_endpoint_auth_methods_supported',
			'required' => 'private_key_jwt',
			'message'  => 'Server does not support private_key_jwt authentication.',
		],
		[
			'field'    => 'token_endpoint_auth_signing_alg_values_supported',
			'required' => 'EdDSA',
			'message'  => 'Server does not support EdDSA for token endpoint auth signing.',
		],
		[
			'field'    => 'dpop_signing_alg_values_supported',
			'required' => 'EdDSA',
			'message'  => 'Server does not support EdDSA for DPoP signing.',
		],
	];

	foreach ( $checks as $check ) {
		$supported = ( $config[ $check['field'] ] ?? [] );
		if ( ! \is_array( $supported ) || ! \in_array( $check['required'], $supported, true ) ) {
			// phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Internal exception message.
			throw new Server_Capability_Exception( $check['message'] );
		}
	}
}