试图绕过一些逻辑。
我正在使用Node.js和Socket.io创建一个简单的回合制游戏。这个想法是每个用户记录'通过一些框架前端系统(快速RubyOnRails脚手架),然后一旦他们登录,他们可以刷新页面并关闭浏览器,他们仍然照常登录,直到他们退出。
我希望使用网络套接字进行持久身份验证的此功能,以便在游戏中使用#39;用户可以关闭浏览器并随时返回,当播放器断开/连接时,我可以转发给其他用户。玩家也可以加入和离开游戏,但显然一次只能在一个游戏中。
我的猜测是,在每个页面加载用户连接的新socket.id需要存储在users表内的数据库中吗?或者是否有更简单的方法将当前用户绑定到socket.id?
我是以错误的方式来做这件事的吗?我似乎无法找到类似于我想要的任何好的示例/文档。一些代码示例或启动应用程序将我推向正确的方向,以实现我想要实现的基本想法将是惊人的。
答案 0 :(得分:0)
您可以为此目的使用令牌。一个很好的选择是使用JSON Web令牌(JWT)。
JSON Web Token(JWT)是一种开放标准,它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。 此信息可以通过数字签名进行验证和信任。 JWT可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对进行签名 - https://jwt.io
在您的情况下使用JWT的一种可能方式是这样的:
使用JWT的主要优点是无需存储额外的数据服务器端,因为可以使用数字签名等加密方法验证令牌。
有关JWT的更多信息:https://jwt.io