2013-07-26 86 views
1

我把情況:Comunicate的NodeJS與PHP,反之亦然

我有一個網站全使在PHP 5.3和MYSQL,該網站需要用戶登錄後可以訪問,登錄「簡單的」檢查用戶名/密碼並使用用戶ID和其他用戶非個人數據在域中創建$ _SESSION。

在PHP中,我需要閱讀這個$ _SESSION來檢測用戶是否登錄。

現在,我認爲在創建一個NodeJS與websockets實時聊天(只在最後的瀏覽器工作,但我尋找純粹的HTML5網站,而不是外部客戶端-js像socketio.js),但這是我的問題:

第一個問題我需要在NodeJS中獲得$ _SESSION ['user'],爲了讓這個我需要從PHP中「拉」到NodeJS,發送一條消息「update-this-user-auth」與$ _SESSION ['用戶']數據,但問題是,首先,從PHP服務器到運行在同一個(或不是)機器上的NodeJS服務器的最佳方式是什麼。

,以及如何識別的的NodeJS用戶,因爲用戶有$ _SESSSIOn在PHP,但我不知道,如果請求來自用戶Nº1,nº32或Nº999999

對於comunicate從問題的第二個問題PHP來的NodeJS我看了一些帖子,並獲得2種方式:

捲曲的用戶,全光照PHP捲曲「稱之爲」的NodeJS服務,並從PHP發送讀取數據到的NodeJS Sending messages from PHP to Node.js

DNODE,我發現這個谷歌搜索,看起來很好,但需要一些額外的圖書館,我喜歡使代碼清晰並且優選簡單。 http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/

我感謝所有想法和意見,爲這兩個問題的最佳解決方案。

回答

2

隨着PHP
可以保存在數據庫中隨機產生的密鑰,用戶的IP,用戶名以及任何其他會話信息(創建時間,最後一個活動,截止日期...)相關聯。另外,還要將該密鑰保存在cookie中。

隨着Node.js的
讀取cookie,發現在DB的關鍵,並檢查會話是否有效。

因此,基本上,而不是將所有信息存儲在PHP中,而是使用共享存儲,例如DB。

+0

好點。我可以創建一個「sesskey」並將其發送到userlogin上的DOM,並且任何時候JS調用websocket函數的時候都會通過「sesskey」。這個問題,如果「壞人」訪問用戶計算機並複製cookie或「sesskey」,可以訪問NodeJS用戶的呼叫,獲取真實用戶的信息。 ¿以任何方式不允許這個? 換句話說,與NodeJS和PHP CURL或DNODE交流的最佳方式是什麼? – Zenth