Yukan Mukimura, Тогда возьмите Axios (или подсмотрите его внешний апи и напишите сами)
Есть глобальные настройки для всех запросов.
Есть возможность задать отдельные настройки для текущего запроса
Есть общий метод выполнения запроса с максимальной настройкой
Есть отдельные методы-хелперы для типов запросов get(), post()
Напишете в виде класса, или набора функций - значения особого не имеет.
Александр Андропов, для посетителя бэкэндом создается сессия. Ее идентификатор сохраняется в куках и с каждым следующим запросом прилетает из браузера на сервер. По этому идентификатору бэкэнд узнает, что зашел тот же самый посетитель, для которого уже открыта сессия, в которой лежит валидный csrf токен.
Я выше написал - вам нужно сохранять куки между запросами. Для хранения печенек у курла есть специальная настройка. Собственно весь пример будет заключаться в написании этой опции (там их кстати две.Я хз какая реально нужна и для чего они различаются, указываю обе).
токен действителен в течение текущей сессии. вы второй запрос делаете отдельно.
нужно куку сохранить. CURLOPT_COOKIEFILE или типа того, не помню опцию.
Aspirant555, Еще раз: все переменные исчезают по завершению работы скрипта.
Вы можете сохранить значение переменной в сессии, базе данных, файле, памяти или еще где-то. При следующем запуске вы можете прочитать сохраненное значение в переменную и использовать его. Других вариантов нет.