【发布时间】:2013-11-02 02:27:34
【问题描述】:
我已将此教程设为红色:http://howtonode.org/socket-io-auth。 它展示了如何使用 express 和 socket.io 对用户进行身份验证。 但是有没有办法只使用 socket.io 而不需要 express 来验证用户?
编辑:
对于会话处理,我使用 RedisStore (https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO)。 剩下的是一个创建身份验证cookie的模块。 有谁知道我可以用来创建身份验证 cookie 的 socket.io 实现,就像你可以在会话处理中做的那样?
【问题讨论】:
-
您是否将 Socket.IO 用作独立设备?身份验证器不创建 cookie,它只是将它们传递给 Socket.IO。
-
@hexacyanide 目前我正在将 express 与 socket.io 一起使用。 Express 仅创建身份验证 cookie。我不使用它的路由,中间件,.... express 和 socket.io 之间的会话与 connect-redis 共享。我认为仅使用 express 来签署 cookie 的依赖性太大。所以我正在寻找一种不依赖于快递(连接)的解决方案。我可以实现自己的未经测试且不安全的身份验证程序,但就像 Golo Roden 建议的那样,这是不可取的。
-
也就是说,您想要一个在基本 HTTP 服务器上运行的实现?因为如果你不想完全使用 HTTP 服务器,那么你会想要使用 cookie 吗?
-
@hexacyanide 是的。只需要一个可以处理签名身份验证 cookie 的节点模块。我知道如何使用 node 实现一个简单的 HTTP 服务器。但不知道有任何经过测试的节点模块可以创建签名的 cookie。我只想在第一个 req/res 周期中使用 HTTP 服务器。我正在使用 cookie,因为您可以保护它们免受 XSS 攻击并使其仅使用 HTTPS。
标签: node.js authentication socket.io