Как отправить учетные данные для входа с сервера PHP Apache на сервер Node.js - PullRequest
0 голосов
/ 23 октября 2019

Редактировать

Простой и эффективный ответ, на который указывают 04FS и Магнус Эрикссон , заключается в отправке зашифрованного токена черезIFrame, идентифицирующий пользователя.

Вот что я сделал:

  1. Создайте зашифрованный токен с PHP random_bytes () для каждого пользователя и сохраните их вбаза данных.
  2. Когда пользователь входит в систему, запрашивает у базы данных токен и помещает в него переменную $ _SESSION.
  3. Отправляет токен в качестве параметра на URL в IFrame.

<iframe src="http://localhost:3381/?token=(some hashed string)"></iframe>

(примечание: может быть лучше не использовать легко узнаваемое слово «токен», а что-то другое)

Запросите ту же базу данных с сервера Node.js, найдите токен и войдите в соответствующего пользователя.

Окончание редактирования

IЯ довольно новичок в веб-разработках.

Я работаю над гибридным веб-приложением PHP / Node.js. Я использую PHP для создания страницы и Node.js с Express.js и Socket.io для создания чата в реальном времени.

В настоящее время Я использую IFrame в своем PHPСтраница для отображения чата с сервера Node.js. Кажется, это лучшее решение, так как я не могу использовать функции php, такие как file_get_content (), для запроса к серверу Node.js, потому что мне нужно отображение в реальном времени.

Вот что работает:

index.php на локальном хосте: 8080 (Apache)

<iframe src="http://localhost:3381/?userid=1"></iframe>

Сервер Node.js на локальном хосте: 3381 (маршрутизация выполнена с помощью Express.js)

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/template-chat.html');
  console.log(req.query.userid);
});

Файл template-chat.html содержит интерфейс чата.

Так что все работает, как я хочу: чат обновляется в режиме реального времени. время, пока пользователь перемещается по сайту.

Моя проблема: Я хочу определить пользователя, который печатает сообщения в окне чата. Я хочу быть уверен, что это то же самое, что и на сайте PHP (я уже сделал форму входа PHP / Mysql). Я, очевидно, не могу сделать то, что сделал здесь, отправив идентификатор пользователя в URL-адресе, поскольку кто-то просто должен вручную изменить этот идентификатор, чтобы его идентифицировали как кого-то другого.

Я не думаю, что смогу сделать http.getзапрос от Node.js к Apache, потому что PHP не хранит данные пользователя в памяти.

Я прочитал здесь: PHP, nodeJS и сеансы , которые я могу использовать memcached чтобы получить содержимое сеанса PHP внутри моего сервера Node.js.

Это то, чего я пытаюсь достичь прямо сейчас, но, похоже, ему нужны расширения / драйверы, с которыми я не знаком, поэтому Я спрашиваю, есть ли лучшее, более простое или более безопасное решение, чем memcached, для идентификации пользователя в чате, возможно, путем отправки учетных данных для входа (или даже простого user_id) из PHP в Node.js.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...