client_id在刷新页面的时候可能自增,绑定在该client_id上的$_SESSION就无用了

malware

用的是WebSocket,页面顶部加载js来进行WS连接.
如果用户频繁刷新该页面,可能导致client_id自增的,这时绑定在client_id上的$_SESSION就失效了.
这种情况应该怎样避免?

阅读 2919
1个回答

walkor

页面刷新后websocket连接就断开了,socket的标识client_id以及对应的session也就失效了。

重新连接后会自动产生一个新的websocket连接,也就会产生一个新的client_id,新的连接要重新走一遍登录流程,流程和第一次连接时一样即可。

类似普通web登录,用户打开一个站点后,站点并不知道用户具体是哪个。当用户输入用户名密码提交后,站点才知道这个用户是谁。然而当这个用户把浏览器关掉后,重新打开站点,站点仍然不知道这个用户是谁(不借助磁盘cookie时),需要从新走一遍登录流程。

socket登录和web登录类似,站点登录态周期(session周期)是浏览器生命周期。而socket的登录态周期就是socket存活周期,socket关闭后这个socket的登录态(session)就没了。新的socket连接需要重新登录一遍,重新赋值session。

socket断开对应的socket的session就失效了,这个是正常的机制,没有避免一说。

  • 暂无评论