Node.js中的用户名和密码验证

时间:2014-08-09 12:18:48

标签: javascript jquery html5 node.js

我创建了名为“USERS”的数据库,并在数据库中创建了“USERS”表,它看起来像是

enter image description here

现在我运行'localhost:8000'。我得到了我的login.html以及控制台中的“连接”消息。现在我想知道在login.html中输入用户名密码后,我想验证“验证”按钮上的用户名密码。我怎样才能做到这一点?????请帮助我。

Server.js:

var http=require('http');
var express=require('express');
var fs=require('fs');
var mysql=require('mysql');
var app=express();
var server=http.createServer(app);
server.listen(8000);
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'root'
});
connection.connect(function(err) {
if(!err)
 {
 console.log('connected');
 }
});
app.get('/', function(request,response){
fs.readFile('login.html', function(Error,Res){
if(!Error)
{
response.writeHead(200,{'content-type':'text/html'});
response.write(Res);
}
});
});

的login.html:

<html>
<head>
<title>Angular Js</title>
<script src="assets/js/Angular.min.js"></script>
<style>
</style>
<body>
<input id="username" />
<input id="password" />
<button id="submit">Verify</button>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您需要对代码进行一些更改..

作为第一步,您需要为Express框架添加一些中间件来处理发布数据 - 例如:

var app=express();
var bodyParser = require('body-parser')
app.use( bodyParser.urlencoded() ); 

从html页面开始,您的输入字段需要包装在表单中 - 否则当您单击“提交”时,它们将不会/不能发布到任何内容。

<body>
    <form id="someform" action="/login" method="post">
        <input id="username" />
        <input id="password" />
        <button id="submit">Verify</button>
    </form>
</body>

然后,在server.js中添加一个新方法来处理对/ login url的发布请求,然后您可以在其中读取提交的值&amp;做适合他们的事。

app.post('/login', function(sReq, sRes) {
        var username = sReq.body.username;
        var password = sReq.body.password;

        if (username=='myusername' && password == 'mypassword') {
               // do something here with a valid login

        } else { 
               // user or password doesn't match
        }
});

请查看How to retrieve POST query parameters?以获取更多提示。

此示例不会将提交的值与数据库进行比较或加密密码,但可能有助于您开始提交帖子数据并在Node中访问它。

对于你计划在生产环境中使用的东西,你也不应该做的事情 - 密码应该被加密,你需要处理会话状态的许多其他东西。

到目前为止,最好的选择是找到并使用一些预先构建的身份验证中间件 - 并根据您的需要对其进行配置。