簡體   English   中英

如何針對跨域的PHP會話ID驗證Socket.IO

[英]How to authenticate Socket.IO against PHP session id across domains

我在node.mydomain.com上有一個node / Socket.IO設置,在www.mydomain.com上有一個Apache / PHP堆棧。

目前我正在使用以下內容進行身份驗證:

  1. 客戶端 :在連接時,將包含PHPSESSID的自定義authorization事件發送到服務器
  2. 服務器 :在authorization ,使用此cookie調用api.php獲取用戶信息,向客戶端發送此身份信息
  3. 客戶端 :現在可以使用此標識執行操作

這是有點kludgy,因為Socket.IO有一個認證的地方( 在這個維基上 )我想使用。 問題是我不知道如何將PHPSESSID cookie信息從客戶端發送到服務器。 它們位於不同的域中,因此瀏覽器不會將它們包含在請求中。

有任何想法嗎?

我建議切換會話處理並使用Redis,這也比基於默認文件的會話處理更快。

首先安裝Redis服務器 之后,通過首先編譯它然后配置php.ini來使用它,將phpredis擴展添加到PHP。

extension=redis.so
session.save_handler = redis
session.save_path = "tcp://localhost:6379/"

然后,您可以使用node_redis模塊從Node.js讀取這些會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM