Я немного новичок в слабосвязанных методологиях, но я попробую. У меня есть бэкэнд-файл PHP, который получает и отвечает на запросы от внешнего интерфейса. Проблема в том, что интерфейс расположен по адресу https://servername.com, а серверная часть - http://localhost/backend.php
. Я хочу проверить серверную часть, чтобы убедиться, что пользователь Я подтвердил, что делает запросы, но я не смог понять, как делиться сеансами от передней части к серверной. По сути, я хочу знать идентификатор пользователя оператора, выполняющего запросы, чтобы серверная часть могла генерировать ответы соответствующим образом по уровню доступа.
В настоящее время я использую curl для генерации запроса как такового:
$ch= curl_init();
curl_setopt($ch,CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['session_id'=>session_id()]));
curl_setopt($ch, CURLOPT_URL, 'http://localhost/backend.php');
$response = curl_exec($ch)
Et c. Я закрываю, возвращаю и так далее, но это никогда не работает. Каждый раз, когда я отправляю идентификатор сеанса и пытаюсь восстановить его на бэкэнде, время передачи истекает.
Восстановление не должно быть сложным в соответствии со всем, что я читаю:
if ($_REQUEST['session_id'])
session_id($_REQUEST['session_id']);
session_start();
Но это не удается. Если я не отправлю идентификатор сеанса, связь работает, но у меня нет информации о сеансе на бэкэнде. Если я отправляю идентификатор, время ожидания истекает каждый раз.
ПРИМЕЧАНИЕ. Я пытался изменить URL-адрес CURL на https://localhost и имя сервера с помощью HTTPS, но затем я получаю сообщение об ошибке: запрошенный домен имя не соответствует сертификату сервера. Попытка использовать имя сервера без HTTPS дает ту же проблему с тайм-аутом, с которой я начал.