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

SocketIO + MySQL认证

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

SocketIO + MySQL认证

您已经结束了,尽管我建议您设置请求标头,而不要设置查询字符串参数。

data
授权函数中的变量是握手数据,其中包含您可以使用的请求标头和cookie信息。这是设置cookie的示例:

在服务器上

io.configure(function() {    io.set('authorization', function(handshake, callback) {        var cookie, token, authPair, parts;        // check for headers        if (handshake.headers.cookie &&  handshake.headers.cookie.split('=')[0]=='myapp') { // found request cookie, parse it cookie   = handshake.headers.cookie; token    = cookie.split(/s+/).pop() || ''; authPair = new Buffer(token, 'base64').toString(); parts    = authPair.split(/:/); if (parts.length>=1) {     // assume username & pass provided, check against db     // parts[0] is username, parts[1] is password     // .... {db checks}, then if valid....     callback(null, true); } else if(parts.length==1) {     // assume only username was provided @ parts[0]     callback(null,true); } else {     // not what we were expecting     callback(null, false); }        }        else { // auth failed callback(null, false);        }    });});

在客户端上

致电 之前

socket.connect
,使用您的身份验证/用户信息设置一个cookie:

function writecookie(value, days) {    var date, expires;    // days indicates how long the user's session should last    if (days) {        date = new Date();        date.setTime(date.getTime()+(days*24*60*60*1000));        expires = "; expires="+date.toGMTString();    } else {        expires = "";    }    document.cookie = "myapp="+base64.enpre(value)+expires+"; path=/";};// for a 'viewer' user:writecookie('usernameHere', 1);// for the 'host' user:writecookie('usernameHere:passwordHere', 1);

除非您的浏览器支持,否则您将需要在客户端上使用base64库

btoa()

重要的是要注意,这不是一个好的身份验证结构。直接在查询字符串或标头信息中传递用户凭据并不安全。但是,此方法使您更接近于更安全的方法。我建议您查看一个类似password.js或everyauth的身份验证库。您可以将此代码细分为利用那些库在运行检查时存储的会话信息。



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

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

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