ExpressJS,MongoDB + Socket.IO - 识别个人用户会话

时间:2016-06-06 12:32:04

标签: node.js mongodb sockets socket.io pug

我正在使用https://github.com/sahat/hackathon-starter/tree/es6。我添加了Socket.IO但无法想出一种安全获取当前登录用户信息的方法。我有一个按钮,按下时我想发送到服务器(用户名,余额和金额,所以我可以安全地更新他们的架构模型...到目前为止,我能够用Jade,但我确定这是非常糟糕的

JADE:

.content-r-inner.child
    .col-md-12.col-xs-12.col-lg-12.no-pad-home
    if !user
      include partials/flash
      include partials/visitorbar
    else 
      include partials/userbar
    |           
    #time.timecontainer.pulsing.pulsingbox
    |           
    .product Product: 
    |  
    input#amount(type='text')
    |           
    #slider-range-max
    |           
    #minus1.minus.unselectable -
    |           
    #plus1.plus.unselectable +
    // </div>
    .sendAmount(onclick="GetAmount()")


// inside include partials/userbar I have GetAmount Function
function GetAmount(){
socket.emit('getAmount', {
"username": "#{user.username}",
"maxBalance": "#{user.balance}",
"getAmount": document.getElementById('amount').value 
});
}

{user.username}你可以在标签内看到......

function GetAmount(){
  socket.emit('getAmount', {
  "username": "JohnDoe",
  "maxBalance": "3750",
  "getAmount": document.getElementById('amount').value 
  });
}

我确信有更好更安全的方法来确定哪个用户按下了按钮...希望有人可以解释我用Socket.IO实现它的最佳方式,刚开始使用它,我发现它是在许多方面比Ajax好很多,但目前缺乏对它的方法甚至Mongo的基本理解:))

感谢您的帮助!荣誉!!!

1 个答案:

答案 0 :(得分:2)

看看socketio-jwthttps://github.com/auth0/socketio-jwt)我认为这是你所追求的。基本上,您需要为活动用户进行身份验证。