大佬教程收集整理的这篇文章主要介绍了node.js – 保护Socket.io,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我想提供一个应该是的Socket.io连接
>加密和
>仅限经过身份验证的用户.
问题是如何做到这一点.我已经发现在连接到套接字时我需要在客户端JavaScript代码中指定{secure:truE},但是如何在服务器端强制只能通过SSL运行套接字连接,并且它只能工作对于经过身份验证的用
我想SSL的事情很简单,因为Socket.io服务器只绑定到https服务器,因此它应该只使用SSL运行,并且不应该在(另外)运行的http服务器上运行它,对?
关于另一件事我对如何确保只有在用户使用http Basic成功验证后才能建立套接字连接没有任何想法.
有任何想法吗?
原始答案:
Socket.io通过io.set(‘authorization’,callBACk)机制支持授权.请参阅相关文档:Authorizing.这是一个简单的示例(使用基于cookie的会话和连接/快速会话存储进行身份验证 – 如果您需要其他内容,则只需实现另一个’授权’处理程序):
var utils = require('connect').utils; // Set up a session store of some kind var sessionId = 'some id'; var sessionStore = new MemoryStore(); // Make express app use the session store app.use(express.session({store: sessionStore,key: sessionID}); io.configure(function () { io.set('authorization',function (handshakeData,callBACk) { var cookie = utils.parseCookie(handshakeData.headers.cookiE); if(!(sessionId in cookiE)) { return callBACk(null,falsE); } sessionStore.get(cookie[sessionId],function (err,session) { if(err) { return callBACk(err); } if(!('user' in session)) { return callBACk(null,falsE); } // This is an authenticated user! // Store the session on handshakeData,it will be available in connection handler handshakeData.session = session; callBACk(null,truE); }); }); });
以上是大佬教程为你收集整理的node.js – 保护Socket.io全部内容,希望文章能够帮你解决node.js – 保护Socket.io所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。