php - Node.js (mysql+socket.io) 通过 Cookie 验证 PHP?

标签 php javascript node.js authentication session-cookies

我目前正在致力于将 node.js 与 socket.io 与我的 PHP 框架集成

当用户登录我的网站时,我将他/她的 session 保存在我的数据库中并为其分配一个用户 ID。

The only way I am able to validate if the request to node.js is valid, is to send the **cookie (session id) and userid to node.js and check the Database, if the session ID is valid and the userid belonging to this session id. This happens with node.js mysql module.

这是唯一的方法吗? “安全”吗?

最佳答案

根据您使用 Node.js 服务器和 sockets.io 执行的操作,您可以在服务器上维护一组已登录用户。

当用户在 PHP 上进行验证时,您可以将套接字事件从客户端代码发送到带有 session ID 的套接字服务器,然后将该 session ID 存储在 Node.js 服务器上的用户关联数组中,这样您就可以可以将任何用户 session ID 与您用来维护客户端和服务器之间通信的套接字相关联。

从现在开始,您只需通过客户端代码传递 session ID 并检查它是否包含在关联数组中,就可以检查与 Node.js 服务器的任何通信。

当然,当从 socket.io 触发断开连接事件时,您会删除数组上的关联条目。

关于php - Node.js (mysql+socket.io) 通过 Cookie 验证 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743138/

相关文章:

javascript - 如何用它的值替换字符串中的表达式?

javascript - 在上部 div 上应用 ng-animate 后防止底部 div 偏移

node.js - node-forge 如何从文件中读取私有(private) rsa key

javascript - 事件事件 API : How to 'create or update contact' along with their custom field values?

php > 性能 > session vs 全局变量 vs 数据库 >?

php - 删除行时如何在mysql自动递增字段中保持正确的数字顺序

php - Laravel 5 如何返回带有 response()->json() 的模板?

php - 在PHP中将字符串设置为指定长度

javascript - 除了文件之外的咕噜声

javascript - NodeJS - Socket.io 仅允许 JWT 验证的连接