Токен JWT недоступен в серверной функции PHP в WordPress для внешнего запроса APIPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Токен JWT недоступен в серверной функции PHP в WordPress для внешнего запроса API

Сообщение Anonymous »

Я работаю над проектом WordPress, в котором мне нужно собирать данные формы и отправлять их во внешний API. Я использую токен JWT для аутентификации этого запроса, но мне не удается получить токен в моей функции PHP. Вот настройка и шаги, которые я предпринял:
Настройка внешнего интерфейса:
Внешний интерфейс отправляет запрос на аутентификацию, и после успешного входа в систему я устанавливаю токен JWT в файле cookie:

Код: Выделить всё

  path: "/",
httpOnly: true,
secure: true,
sameSite: "None",
domain: "3vbp2t1s-8000.euw.devtunnels.ms"
});
Я использую wpforms_process_complete в WordPress для сбора данных отправки формы и отправки их во внешний API. Вот моя функция PHP:

Код: Выделить всё

    $form_data_json = [];
foreach ($fields as $field) {
if (isset($field['name']) && isset($field['value'])) {
$form_data_json[$field['name']] = $field['value'];
}
}

$jwt_token = isset($_COOKIE['Token']) ? $_COOKIE['Token'] : null;
error_log('JWT Token: ' . ($jwt_token ? 'found' : 'not found'));

$headers = [
'Content-Type' => 'application/json',
];
if ($jwt_token) {
$headers['Authorization'] = 'Bearer ' . $jwt_token;
} else {
error_log('Warning: JWT Token not found in cookies.');
}

$response = wp_remote_post('https://external-api.com/receive-data', [
'method'    => 'POST',
'body'      => json_encode($form_data_json),
'headers'   => $headers,
]);

if (is_wp_error($response)) {
error_log('Error: ' . $response->get_error_message());
}
}
add_action('wpforms_process_complete', 'capture_all_form_data_as_json', 10, 3);
Несмотря на то, что токен JWT должен быть установлен в файлах cookie, моя функция регистрирует, что токен JWT не найден в $_COOKIE.
Я проверил, что файл cookie действительно присутствует. в браузере и имеет правильные настройки домена и пути, но он недоступен в PHP.
Изображение
Когда я пытаюсь вывести ключ только для целей тестирования, в серверной части отображается следующее:
[img]https://i. sstatic.net/EDTUdXqZ.png[/img]

Я использую интерфейс WordPress Elementor и серверную часть Nodejs Express. Функция перехвата находится в файле function.php моей темы. Он успешно отправляет данные формы, но так и не находит токен. Я также попробовал error_log: извлечь заголовки, и токена там тоже не существует.

Подробнее здесь: https://stackoverflow.com/questions/791 ... external-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»