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认证'的详细信息,请在这里查看

原作者:
...