【发布时间】:2015-01-11 22:07:34
【问题描述】:
通过身份验证保护 websocket 的最先进方法是什么?
问题是,每个人都可以下载 js 文件并查看页面连接的 websocket 的主机和端口。 我想到的唯一方法是:打开一个 wss(安全 websocket)并发送例如凭据并在凭据错误时关闭服务器端的连接?
【问题讨论】:
-
是的,问题是。一些库,例如github.com/theturtle32/WebSocket-Node 建议使用服务器端跨源保护。 wss 只是加密你的流量。
-
好的,基本上客户端必须提供一些信息(例如用户名+密码),服务器决定他是否接受连接?
-
通常身份验证产生抛出http,客户端获取一些秘密令牌(会话),保存在cookie中。令牌可以是打开套接字连接时的密钥(ws://localhost:8000?token=1234)
-
谢谢!以及如何验证令牌在 node.js 中是否有效?
-
与工作服务器端会话机制相同。您应该在某处存储已打开令牌的列表并检查其中一个。好的决定是使用带有过期选项的 Redis 集进行存储会话。
标签: javascript node.js websocket