Функция wp_is_application_passwords_available() проверяет, доступна ли в текущем окружении система паролей приложений в WordPress. Эта система предоставляет пользователям возможность генерировать уникальные пароли для доступа к сайту через API, не используя основные учётные данные.
wp_is_application_passwords_available(): bool
Описание
По умолчанию система паролей приложений доступна для сайтов, работающих через SSL, или для локальных окружений. Если сайт не использует SSL и не является локальным, эта функция вернёт false, что может потребовать дополнительных настроек безопасности для включения паролей приложений.
Возвращаемое значение
- true: Пароли приложений доступны для использования.
- false: Пароли приложений недоступны для текущего окружения.
Как работает функция
Функция делает проверку на наличие SSL-сертификата или на то, работает ли сайт в локальной среде. Если ни одно из этих условий не выполнено, она вернёт false. Это важная проверка, чтобы защитить сайт от небезопасного использования паролей приложений.
Применение
Функция полезна для проверки доступности паролей приложений перед выполнением API-запросов или других задач, требующих аутентификации.
Пример использования 1: Проверка доступности паролей приложений
В этом примере мы проверим, доступны ли пароли приложений, и выведем сообщение в зависимости от результата.
if ( wp_is_application_passwords_available() ) {
echo 'Пароли приложений доступны для использования.';
} else {
echo 'Пароли приложений недоступны в этом окружении.';
}
В этом простом примере функция проверяет, можно ли использовать пароли приложений, и выводит соответствующее сообщение.
Пример использования 2: Использование паролей приложений в REST API
Этот пример демонстрирует, как можно использовать функцию wp_is_application_passwords_available() в кастомном REST API для проверки, доступны ли пароли приложений.
add_action( 'rest_api_init', function() {
register_rest_route( 'example/v1', '/secure-endpoint/', array(
'methods' => 'POST',
'callback' => 'handle_secure_request',
'permission_callback' => 'check_application_password_availability',
));
});
function check_application_password_availability() {
if ( ! wp_is_application_passwords_available() ) {
return new WP_Error( 'application_passwords_disabled', 'Пароли приложений недоступны.', array( 'status' => 403 ) );
}
return true;
}
function handle_secure_request( WP_REST_Request $request ) {
// Обработка запроса
return array( 'status' => 'Доступ разрешён.' );
}
В этом примере мы создаём REST API маршрут и проверяем доступность паролей приложений с помощью функции wp_is_application_passwords_available(). Если пароли недоступны, маршрут возвращает ошибку.
Пример использования 3: Проверка паролей приложений в административной панели
Вы можете использовать эту функцию для отображения предупреждений в админ-панели WordPress, если пароли приложений недоступны. Это может помочь администраторам сайта быть в курсе ограничений безопасности.
add_action( 'admin_notices', 'check_application_password_availability_notice' );
function check_application_password_availability_notice() {
if ( ! wp_is_application_passwords_available() ) {
echo '<div class="notice notice-error"><p>Пароли приложений недоступны. Убедитесь, что сайт работает через SSL или в локальном окружении.</p></div>';
}
}
В этом примере, если пароли приложений недоступны, в административной панели WordPress будет отображено уведомление.
Пример использования 4: Кастомизация поведения через фильтр
Вы можете изменить логику работы функции с помощью фильтра wp_is_application_passwords_available. Например, вы можете разрешить использование паролей приложений на всех сайтах, даже если они не используют SSL.
add_filter( 'wp_is_application_passwords_available', 'custom_application_password_availability', 10, 1 );
function custom_application_password_availability( $available ) {
// Разрешаем пароли приложений всегда
return true;
}
этом примере мы принудительно разрешаем использование паролей приложений, даже если сайт не соответствует стандартным критериям доступности.
Пример использования 5: Возвращение ошибки в зависимости от состояния паролей
Когда нужно выполнять более сложную логику при работе с API, проверку можно сделать на этапе выполнения запроса. В этом примере мы создаём маршрут, который возвращает ошибку, если пароли приложений недоступны.
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/check-passwords/', array(
'methods' => 'GET',
'callback' => 'check_passwords_availability',
) );
} );
function check_passwords_availability() {
if ( ! wp_is_application_passwords_available() ) {
return new WP_Error(
'application_passwords_unavailable',
__( 'Application passwords are not available for this environment.' ),
array( 'status' => 503 )
);
}
return array(
'status' => 'available',
'message' => 'Application passwords are enabled and available for use.',
);
}
В этом примере, если система паролей приложений недоступна, возвращается сообщение об ошибке с кодом 503. В случае успеха возвращается сообщение о доступности паролей.
Заключение
Функция wp_is_application_passwords_available() играет важную роль в проверке безопасности и доступности паролей приложений в WordPress. Она автоматически определяет, можно ли использовать эту систему, и предоставляет разработчикам возможность кастомизировать логику через фильтры. Это делает функцию полезной для интеграций с REST API и других сценариев, где необходимо проверять доступность паролей приложений перед выполнением задач.