2013-12-13 107 views
2

我想在我的php應用程序(通過websockets)中認證聊天用戶。現在,我使用聊天消息從域發送所有Cookie。其中一個cookie是會話ID。有沒有辦法做這樣的事情:從cookie中讀取PHPSESSID的用戶分配和讀取會話

session_id($cookies['PHPSESSID']); 
session_start(); 
echo $_SESSION['user']['username']; 

或者是否有任何其他方法來驗證用戶?

回答

0

是的,你可以做到這一點,一個小的調整:

session_id($_COOKIE['PHPSESSID']); //We use the `$_COOKIE` global array to access cookies 
session_start(); 
echo $_SESSION['user']['username']; 

要小心,雖然。由於您自己使用的是與PHP相同的cookie,因此該值是自動生成的,除非您事先使用了session_id($_COOKIE['PHPSESSID']);。您需要確保在用戶第一次訪問您的網站時生成自動會話ID。

+0

感謝您的回覆。我不能使用$ _COOKIE,因爲ws協議不會發送cookie,所以我必須用javascript讀取cookie併發送消息。 – mitch

+0

@MichałK.:對,當然,我的不好。那麼也許只是將它包含爲'GET'參數:'ws://website.com/path?sessID ='並在JavaScript中附加實際ID?然後你可以(取決於你使用的PHP框架)通過'$ _GET ['sessID']'來訪問它 – Lasse