【问题标题】:Node.js (mysql+socket.io) Authentication PHP via Cookie?Node.js(mysql + socket.io)通过Cookie认证PHP?
【发布时间】:2012-09-26 10:13:32
【问题描述】:
我目前正在将 node.js 与 socket.io 与我的 PHP 框架集成。
当用户登录我的网站时,我将他/她的会话保存在我的数据库中并为他分配一个用户 ID。
我能够验证对 node.js 的请求是否有效的唯一方法,
是将**cookie(会话ID)和用户ID发送到node.js并检查
数据库,如果会话 ID 有效且用户 ID 属于此
会话 ID。这发生在 node.js mysql 模块中。
这是唯一的方法吗?它“安全”吗?
【问题讨论】:
标签:
php
javascript
node.js
authentication
session-cookies
【解决方案1】:
根据您使用 Node.js 服务器和 sockets.io 的用途,您可以在服务器上维护一组登录用户。
当用户验证您的 PHP 时,您将客户端代码中的套接字事件发送到带有会话 ID 的套接字服务器,然后将该会话 ID 存储在 Node.js 服务器上的关联用户数组中,这样您可以将任何用户会话 ID 关联到您用来维持客户端和服务器之间通信的套接字。
从现在开始,您可以检查与 Node.js 服务器的任何通信,只需通过客户端代码传递会话 ID 并检查它是否包含在关联数组中。
当然,当从 socket.io 触发断开连接事件时,您会删除数组上的关联条目。