Совместное использование данных между php и node.js с помощью файла cookie

У меня есть сайт PHP, а для обновлений в реальном времени и чата я установил Node.js и его работа прекрасна.

И PHP, и Node.js имеют доступ к одной и той же базе данных MySQL.

Но проблема заключается в проверке личности пользователя, который уже зарегистрирован на PHP-сайте.

Я не хочу разговаривать с PHP-приложением любыми способами, REST или нет. Поскольку, для меня это будет победить ту же цель использования Node.js, как и каждый запрос Node.js, будет сделан новый запрос страницы PHP.

Я хочу, это метод шифрования и дешифрования, который понимается как PHP, так и node.js

Чтобы я мог установить файл cookie с зашифрованным значением для запроса Node.js, который будет находиться в субдомене updates.mydomain.com. Читая файл cookie, Node.js может расшифровать его значение и проверить личность пользователя.

Итак, мой вопрос: существует ли какой-либо шифр и соответствующий метод дешифрования, который поддерживается как PHP, так и Node.js, используя тот же ключ шифрования?

Обновления

Фактически им не хотелось бы расшифровать его на стороне клиента: D, так как вся точка дешифрования бессмысленна. То, что я хочу сделать,

1) PHP для генерации зашифрованной информации пользователя cookie и использования этого файла cookie для определенного домена, например update.mydomain.com

2) Затем node.js получит куки-файл для каждого последующего запроса и расшифрует данные на стороне сервера, используя тот же ключ шифрования.

Как я могу видеть, именно поэтому я хотел знать, если существует общая система шифрования / дешифрования между PHP и node.js, так что зашифрованные данные могут быть дешифрованы другим и наоборот.

Таким образом, я могу полностью перенести текущую регистрацию пользователей с PHP на node.js, и мне не нужно беспокоиться о управлении сеансом других видов 🙂

Короче говоря, Encrypt by PHP -> Decrypt by Node.js -> возвращает те же данные. Возможное?

Благодаря,
Anjan

Наилучший подход здесь (imho) заключается в том, чтобы хранить информацию о сеансе в базе данных , а затем убедиться, что Node может прочитать cookie сеанса, установленный приложением PHP.

Затем он может просто проверить cookie сеанса на базе базы данных, чтобы убедиться, что пользователь вошел в систему.

Пример шифрования

Если вы действительно хотите использовать шифрование, имейте в виду, что это, вероятно, будет менее безопасным и займет больше времени, чем просто смена PHP-сервера, но вот пример, который, вероятно, может работать:

В PHP зашифруйте данные:

<?php $encryption_key = 'somethingverysecretandpreferrablylong'; $vector = 'anotherlongwindedstring'; mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $encryption_key, 'My secret message', MCRYPT_MODE_CBC, $vector); ?> 

И расшифровать в Node.js;

 var crypto = require('crypto'); var decipher = crypto.createDecipher('aes-256-cbc','InmbuvP6Z8'); decipher.update(crypted_string_from_cookie,'hex','utf8'); decipher.final('utf8'); 

И, пожалуйста, будьте осторожны с этим кодом. Я отнюдь не эксперт по безопасности, поэтому, если вы хотите зашифровать что-нибудь чувствительное, вы должны получить экспертную оценку от кого-то, кто есть 🙂

Другим подходом было бы использование node.js как самого хранилища сеансов PHP. У Гонсало Аюзо есть интересная статья:

http://gonzalo123.wordpress.com/2011/07/25/using-node-js-to-store-php-sessions/