Я попытался реализовать решение здесь: Как разделить сессию между NodeJs и PHP, используя Redis?
Это прекрасно работает, если я создаю сессию в Node, а затем загружаю свою страницу PHP. Сеансы объединяются. Мне нужно знать, как создать сеанс в PHP, а затем объединить его при посещении моего узла. Оба моих сайта находятся на одном домене 100%.
В этом фрагменте я добавил строку $ echo $ sess_id, и она выглядит как «» (мне кажется, в этом суть проблемы). Если я делаю session_id (‘temp’); ключ redis становится сессионным: php: temp, но, очевидно, он должен быть тем, что понимает nodeJS. Я также определенно использую тот же секретный ключ на узле / php.
} else {
// let PHP generate us a new id
session_regenerate_id();
$sess_id = session_id();
echo $sess_id;
$hmac = str_replace("=", "", base64_encode(hash_hmac('sha256', $sess_id, EXPRESS_SECRET, true)));
// format it according to the express-session signed cookie format
session_id("s:$sess_id.$hmac");
}
Из-за этого, когда я выполняю ключи redis-cli *, я получаю ключ с именем session: php: без идентификатора сессии. если я делаю GET сеанс redis-cli: php: я получаю
"{\"php\":\"Hello from PHP\",\"cookie\":[]}"
Я знаю, что PHP говорит с Redis, он просто не сохраняет реальную сессию с идентификатором сессии.
Я был в этом в течение нескольких дней, любая помощь будет принята с благодарностью, и я был бы рад ответить на любые вопросы.
Это также ничего не стоит, я получаю без ошибок и следующие строки
echo json_encode($_COOKIE, JSON_PRETTY_PRINT);
echo json_encode($_SESSION, JSON_PRETTY_PRINT);
выход
[
]{
"php": "Hello from PHP",
"cookie": [
]
}
Если я запускаю сессию в узле, эти строки выводят полную информацию о куки / сеансе из узла с добавлением php hello из php (отлично сочетается).
Задача ещё не решена.
Других решений пока нет …