У нас есть текущий веб-сайт в PHP. В настоящее время мы обновляем его в Node. Мы будем обновлять его шаг за шагом, поэтому у нас будет несколько страниц в PHP и некоторые другие в Node. Проблема в том, что когда пользователи будут подключаться, мы должны убедиться, что у них есть сеанс как в PHP, так и в Node, поэтому им не нужно будет подключаться дважды.
В PHP мы создаем готовку PHPSESSID ie и мы храним все данные в файле сессии в / tmp. В Node мы используем токен JWT.
Что я пытаюсь достичь прямо сейчас: когда пользователь соединяется со страницей, которая запускается на Node, он должен создать PHPSESSID cook ie и файл сеанса. поэтому, когда он перейдет на другую страницу, которая работает на PHP, он все равно будет подключен.
Веб-сайт PHP и Node API имеют одинаковый домен, но работают на другом порту.
Прямо сейчас мой код выполняет следующие действия:
Но когда я проверяю куки моего домена, PHPSESSID не появляется. Но это происходит после того, как я его создаю и печатаю $ _COOK IE in PHP. И из-за этого PHP не может найти никакого повара PHPSESSID ie и не может получить доступ к файлу сеанса.
Я использую Node с GraphQL и Apollo и PHP с Zend Framework 1.12
Вот как я звоню PHP с узла:
const url = `http://www.mysite.local/ajax/login?email=${data.email}&password=${data.password}`
const headers = {
Referer: 'http://www.mysite.local/auth'
}
await fetch(url, { method: 'GET', headers: headers })
Сеансы в PHP управляются Zend
Я тестирую на Firefox .