2013-03-20 132 views
0

在我的应用我使用socketio和的NodeJS。我试图实现简单的身份验证。如果用户被授权,我必须重定向到我的应用程序,否则我必须重定向到同一页面。我实现了代码示例是的NodeJS(表达)与socketio

<script> 
    $(function(){  
     $('#join').click(function() { 
      var uname = $('#uname').val(); 
      alert(uname); 
      socket.emit('news', uname);        
      var pwd = $('#pwd').val();  
      socket.emit('pass', pwd); 
     }); 
     }); 
</script> 

服务器代码..

app.get('/', function(req, res){ 
     if(auth) 
     { 
      res.sendfile(__dirname + '/home.html'); 
     } 
     else 
     { 
     res.send("hello user"); 
     } 
}); 
io.sockets.on('connection', function(socket){ 
     var uname; 
     var pwd;  
    socket.on('news', function(data){  
    uname=data; 
    console.log("the information i got is" + uname); 
    }); 
    socket.on('pass', function(data){ 
    pwd=data; 
    console.log("the information i got is" + pwd);  
    if (uname==123 && pwd ==321) 
    { 
    auth=true; 
    console.log("AUTHENTICATED USER"); 
    } 
    }); 
    socket.on('disconnect', function(data){   
    });  
}); 

在控制台上我得到这个

the information i got is123 
the information i got is321 
AUTHENTICATED USER 

,但我面临的问题是,如果用户授权它不是重定向到另一个页面

+0

我面临的一个问题是,当按钮以往客户点击我正在存储的用户名和密码,我无法读取未格式化,似乎缺乏一种编码风格 – mkoryak 2013-03-20 05:19:02

+0

遗憾的问题代码....在客户端。在服务器端,当他打开套接字我从套接字的值,并检查值,如果这些是有效的,它应该重定向到应用程序使用该app.get()....希望我解释清楚问题... – Ramesh 2013-03-20 05:28:34

回答

1

尝试发送URL到客户端,让客户端浏览器拉手T-他重定向...

这个怎么样?

客户:

$(function(){  
     $('#join').click(function() { 
      var uname = $('#uname').val(); 
      alert(uname); 
      socket.emit('news', uname);        
      var pwd = $('#pwd').val();  
      socket.emit('pass', pwd); 
      socket.on('url', function (data) { 
      window.location.href=data;  
    }); 
     }); 
     }); 

服务器:

app.get('/', function(req, res){ 
     if(auth) 
     { 
      socket.emit('url', { msg: 'homePage' }); 
     } 
     else 
     { 
      socket.emit('url', { msg: 'hiPage' }); 
     } 
}); 

注意:这仅仅是一个示例代码,无法执行的。