【发布时间】:2016-05-16 20:43:51
【问题描述】:
我在Github socketio-jwt 上问了这个问题。 3天后没有答案,谷歌也找不到任何答案。
问题一:
在连接时检查令牌是否足够安全?我需要检查每个事件的令牌吗? 例如。检查每个 getNews 事件
socket.on("getNews", function(data, callback){
// check token and if valid return news via callback
});
对
检查连接/重新连接
io.use(function(socket, next) { // using general example not socketio-jwt
// check token and if valid proceed
});
问题2:
如何知道特定令牌属于哪个用户?一种方法是将 id 添加到有效负载中,但是,这是最佳做法吗?
【问题讨论】:
-
那你做了什么?我现在处于相同的情况,即如何知道该请求属于哪个用户,以便我们可以使用适当的 SECRET_KEY(可能是 id+msisdn 的混合)来验证用户。
-
说实话我不记得我做了什么。但据我了解,如果您使用的是
wss://,您只需要检查连接上的令牌,而不是 WebSockets 的每个事件。虽然,据我了解,socket.io 使用长轮询、闪存套接字等......在这种情况下,可能值得检查每个事件。 -
对于
id,您可以使用io.engine.generateId更改id,以便您知道哪个用户属于哪个套接字。
标签: node.js performance security socket.io jwt