栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Socket.IO身份验证

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Socket.IO身份验证

使用connect-
redis并将redis用作所有经过身份验证的用户的会话存储。确保通过身份验证将密钥(通常是req.sessionID)发送给客户端。让客户端将此密钥存储在cookie中。

在套接字连接(或以后的任何时间)上,从cookie中获取此密钥并将其发送回服务器。使用此密钥以redis方式获取会话信息。(获取密钥)

例如:

服务器端(使用redis作为会话存储):

req.session.regenerate...res.send({rediskey: req.sessionID});

客户端:

//store the key in a cookieSetcookie('rediskey', <%= rediskey %>); //http://msdn.microsoft.com/en-us/library/ms533693(v=vs.85).aspx//then when socket is connected, fetch the rediskey from the document.cookie and send it back to servervar socket = new io.Socket();socket.on('connect', function() {  var rediskey = Getcookie('rediskey'); //http://msdn.microsoft.com/en-us/library/ms533693(v=vs.85).aspx  socket.send({rediskey: rediskey});});

服务器端:

//in io.on('connection')io.on('connection', function(client) {  client.on('message', function(message) {    if(message.rediskey) {      //fetch session info from redis      redisclient.get(message.rediskey, function(e, c) {        client.user_logged_in = c.username;      });    }  });});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号