Javascript Node.js中的用户名和密码验证
我已经创建了一个名为“USERS”的数据库,并且在看起来像这样的数据库中创建了“USERS”表 现在我运行“localhost:8000”。我在控制台中得到了login.html和“connected”消息。现在我想知道在login.html中输入用户名密码后,我想在“验证”按钮上单击验证usename密码。我该怎么做?????请帮帮我 Server.js: login.html:Javascript Node.js中的用户名和密码验证,javascript,jquery,html,node.js,Javascript,Jquery,Html,Node.js,我已经创建了一个名为“USERS”的数据库,并且在看起来像这样的数据库中创建了“USERS”表 现在我运行“localhost:8000”。我在控制台中得到了login.html和“connected”消息。现在我想知道在login.html中输入用户名密码后,我想在“验证”按钮上单击验证usename密码。我该怎么做?????请帮帮我 Server.js: login.html: 您需要对代码进行一些更改 作为第一步,您需要为Express framework添加一些中间件来处理post数据,
您需要对代码进行一些更改 作为第一步,您需要为Express framework添加一些中间件来处理post数据,例如:
var app=express();
var bodyParser = require('body-parser')
app.use( bodyParser.urlencoded() );
从html页面开始,您的输入字段需要包装成一个表单,否则当您单击Submit时,它们将不会/无法发布到任何内容
<body>
<form id="someform" action="/login" method="post">
<input id="username" />
<input id="password" />
<button id="submit">Verify</button>
</form>
</body>
请查看更多提示
本例不涉及将提交的值与数据库进行比较或加密密码,但可能会帮助您开始提交post数据并在节点中访问它
这也不是你计划在生产环境中使用的东西——密码应该加密,你需要处理会话状态的其他很多东西
到目前为止,最好的选择是找到并使用一些预构建的身份验证中间件,并对其进行配置以满足您的需要。您似乎对所涉及的技术有了合理的掌握,您的处境如何?请不要将密码以明文形式存储在数据库中。这是一个非常糟糕的主意。相反,存储密码SHA-1的单向散列,等等。要检查密码,您需要散列他们给您的内容,并将其与您持有的散列进行比较。这样一来,一个被破坏的数据库就不会泄露每个人的密码。密码对你的参考是可见的。我不会称root为真正的密码。无论如何,这可能是他的开发机器@T.J.克劳德:你忘了提到腌制。不含盐份的散列几乎和明文密码一样糟糕。@ThiefMaster:我以为会有后续阅读。但我真的应该说在那里的某个地方加盐。根你是说管理员吗?这比更复杂、更具体的用户身份验证更准确。我发现这个答案有问题,因为它演示了绝对最糟糕的身份验证方法,因为它根本没有说明如何正确地进行身份验证。然而,在有人试图开始使用node的问题中,我觉得概括一些基本知识可能会很有用。为什么我在控制台中获得用户名、密码是未定义的???
var app=express();
var bodyParser = require('body-parser')
app.use( bodyParser.urlencoded() );
<body>
<form id="someform" action="/login" method="post">
<input id="username" />
<input id="password" />
<button id="submit">Verify</button>
</form>
</body>
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
}
});