转载请注明出处:
http://blog.csdn.net/Soaring_Tiger/article/details/51439605
翻译自 Token-based Authentication with Socket.IO 原文标题及内容略有删改
在实时框架里进行用户认证(Authentication)是非常有挑战的一件事,因为实时系统与常规的web app是有很大差别的。其风险在于如果没有准确的进行用户认证,那么你很可能就会把数据流发送到错误的用户那里去。因为socket系统不能自动的知道谁是登录用户,因此理论上任何人都可以加入到数据流当中。
图1.很多人会误用的Socket.IO认证方式
很多人错误的认为:只要用户在页面上登录了一次,那么就可以自动的在socket stream数据流中得到认证。实际上这是两个完全不同的通道(channels)。
有两种思路可以解决上述问题,一种是传统的基于cookie的认证方式,还有一种是基于JWT(JSON Web Tokens)的认证方式,下图是两种方式的比较:
图2
对于两种方法的比较,我们另文再讨