【发布时间】:2016-02-21 00:48:45
【问题描述】:
我正在使用 node.js 创建一个登录应用程序,我似乎在将字符串从服务器传输到 html 方面遇到了知识不足。
我在jsfiddle 发布了我当前的代码。 我的应用程序验证 mysql 表的凭据,然后生成一个包含用户名密码和用户 IP 地址的基本令牌。
在最后一段代码中,客户端 html 发布到服务器,我有两个部分,您可以看到发送到基本用户页面和发送到管理页面。 我试图研究这个主题,但我没有得到任何与这种情况相关的信息。任何人都可以指导我在发送令牌的同时将用户发送到管理员或用户页面的正确方向吗?
同样,express服务器如何向客户端发送数据,例如 在页面上,我希望数据库保存有关用户的相关信息,例如地址和电话号码。这些信息如何通过html从服务器传输到客户端?
app.post('/', urlencodedParser, function (req, res) {
var date = new Date();
con.query("SELECT * from users WHERE username=" + con.escape(req.body.username) + " AND password=" + con.escape(req.body.password), function (err, rows, fields) {
if (err) {
console.log(err);
} else {
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
if (rows == '' && rows == '') {
console.log('User Failed to login to the server with @'.red + con.escape(req.body.username) + ':' + con.escape(req.body.password));
res.sendFile(__dirname + '/admin/failure.html');
} else {
var isadmin = rows[0].admin;
var cryptomap = [req.body.username + ',' + req.body.password + ',' + ip];
var strcryptomap = cryptomap.toString(); // convert array to string
var token = encrypt(strcryptomap);
console.log(token + ' SENT'.red);
var backto = decrypt(token); //decr
var arr = backto.toString().split(","); // SPLITTING STRING TO SATISFY /VERIFY *************************************************
console.log(arr[0] + ' has valid token, encryption succsessful'.green);
con.query('UPDATE users SET crypto=' + con.escape(token) + 'WHERE username=' + con.escape(req.body.username), function (err, rows, fields) {
if (err) {
res.send(500);
} else {
console.log('Updated Crypto for ' + req.body.username);
if (isadmin == 0) {
// send to basic user page
res.send('USER');
} else {
//send to admin user page
res.sendto('http://google.com/?' + token);
}
}
});
}
}
});
});
【问题讨论】:
标签: javascript html mysql node.js