php - Laravel 5: 使用Laravel會話數據的socket.io 客戶端認證

  显示原文与译文双语对照的内容
0 0

我想基於Laravel創建的客戶端會話數據來驗證 socket.io 客戶機。

我所想的是:

從客戶端到伺服器的用戶名和電子郵件;

使用用戶登錄后在php中存儲 socket.io 伺服器需要的數據,然後基於會話 cookie id在 node.js 中讀取它。 我可能要去商店 sessionId ->"email, name" 在Redis中,如果我喜歡這種方法,

在Laravel中使用Redis會話驅動,解碼 Cookies,從 node.js 。unserializing和解碼中存取Laravel會話值;

方法A 顯然非常不安全,只能用來證明概念。

因為我不需要複製或者管理會話數據,而只對它進行解碼,所以方法C 看起來更好。 這種方式將我的應用程序與Laravel管理會話的實現細節相結合,因此似乎並不合適。

方法B 看起來更有前景,更容易實現。 但是使用方法B 意味著我必須自己管理一些會話數據,以便 socket.io 能夠讀取它。 這樣做可能使得Laravel會話數據和會話數據在Redis中不一致,這將在時間的某一時刻發生。 例如,可以重用過期的會話 as,而某些 socket.io 客戶機將被錯誤地認證為另一個用戶。 這時我想不到更細微的情況,但是由於這個 incosistency,我認為這種情況可以能有所破壞。

是一種更加優雅。健壯且安全的方法,它基於 socket.io 應用程序中的Laravel會話數據? 如果沒有大量更好的方法,我認為B 是最好的方法,可以改善我管理的會話數據的一致性。

總的來說,我可以總結一下,實際上是訪問,和php之外的,數據,以及,的客戶端。

时间: 原作者:

0 0

我建議你使用JSON網路令牌認證。

JSON Web令牌( JWt ) 是一種相對新的令牌格式,用於空間約束環境,如HTTP授權標頭。 JWT被架構為基於各方傳輸安全聲明的方法。 更詳細關於JWT的信息。

使用is的最簡單方法是使用一個像這樣的軟體包。 或者你可以通過yourserlf實現它。

使用JWT認證,你將能夠從令牌訪問用戶。 例如:


$user = JWTAuth::parseToken()->toUser();

有關如何使用'jwt認證'的詳細信息,請在這裡查看

原作者:
...