Я пытаюсь зашифровать свои consumer_key
и consumer_secret
при каждом внешнем вызове API REST моей Woocommerce.
Итак, мои внешние вызовы (GET и POST) содержат поле, скажем encryptedData
, кто содержит consumer_key
и consumer_secret
.
Поэтому, прежде чем API аутентифицируется, я пытаюсь декодировать мои encryptedData
и поместить значения в $ _GET с rest_pre_dispatch
, например:
add_action('rest_pre_dispatch', 'api_pre_dispatch', 1, 4);
function api_pre_dispatch($result, $this, $request){
$params = $request->get_params();
if (isset($params["encryptedData"])) {
$apiKeys = ["consumer_key", "consumer_secret"];
$decryptedPayload = (array) json_decode(decryptPayloadApi($params["encryptedData"]));
foreach ($decryptedPayload as $key => $data) {
$request->set_param($key, $data);
if (in_array($key, $apiKeys)) {
$_GET[$key] = $data;
}
}
}
}
Проблема в том, что моя функция выполняется до нативного perform_basic_authentication
(в class-wc-rest-authentication.php
...
У вас есть идеи для меня?