创build一个用户会话 – NODE js

一般来说,我是新的节点js和JavaScript。 我有下面的一段代码将处理login。 我有一个客户表的MYSQL数据库。 当客户input他们的用户名和密码时,会检查它是否存在于数据库中。 这部分工作。

我现在想要增强此function,以便它将采用用户名和创build某种会话variables,可以在整个应用程序中使用。 我对JS很陌生,所以我不确定哪些内置设施已经存在,或者最佳实践。

我希望能够在整个应用程序中使用这个会话variables,以及为了后续的注销function。

有人能就此提出build议吗,还是指向正确的方向? 谢谢。

情况下“/login”:

var body = ''; console.log("user Login "); request.on('data', function (data) { body += data; }); request.on('end', function () { var obj = JSON.parse(body); console.log(JSON.stringify(obj, null, 2)); var query = "SELECT * FROM Customer where name='"+obj.name+"'"; response.writeHead(200, { 'Access-Control-Allow-Origin': '*' }); db.query( query, [], function(err, rows) { if (err) { response.end('{"error": "1"}'); throw err; } if (rows!=null && rows.length>0) { console.log(" user in database" ); theuserid = rows[0].customerID; var obj = { id: theuserid } response.end(JSON.stringify(obj)); } else{ response.end('{"error": "1"}'); console.log(" user not in database"); } } ); }); 

}

可以有多种实现用户会话的方式。

一个,你可以使用一个浏览器cookie,它有很多优点和缺点,你应该读一下,看看它是如何pipe理的。 这也取决于你正在使用的服务器(快递,hapi等)。

二,您可以在后端设置JWT令牌,并将其包含在响应头中,然后您可以使用您的应用程序状态或浏览器的本地存储将该令牌保存在UI上。 任何需要进行身份validation的后续请求都应该包含此身份validation令牌作为validation头。

为了更清楚起见,你可以看看相关的库(如护照),这使得这个任务变得更加容易。

PS:如果您selectcookies,请确保业务是否允许,因为最终用户不会总是被跟踪。 🙂