【发布时间】:2020-03-02 20:08:41
【问题描述】:
下面有一段代码:
async function authenticateUser() {
let authenticated = false;
socketTx = io();
socketRx = io.connect();
var user = prompt("Please enter username", "");
var pass = prompt("Please enter your password", "");
socketTx.emit('authChannel', {username: user, password: pass});
let promise = new Promise((resolve, reject) => {
socketRx.on('authChannel', function(auth) {
//console.log(auth);
resolve(auth);
});
});
authenticated = await promise;
console.log(authenticated)
if (authenticated == false) {
user;
pass;
} else {authenticated == true}
}
socketTx 正在将user/pass 数据发送到服务器以进行Node.js 中的PAM 身份验证。 socketRx 接收到 true/false 以表明用户是否已通过身份验证。
所需的行为是提示向用户发送垃圾邮件,直到提供正确的“登录”信息。我以为我在验证身份验证为假但提示不显示第二次(或更多)时间后再次调用变量user/pass 时捕捉到了这种行为。我可以确认我在console.log(authenticated) 收到了正确的信息。
我有什么明显的遗漏吗?
提前致谢。
【问题讨论】:
-
在
if (authenticated == false)块中再次调用authenticateUser(),调用提示不会再次执行请求,所以需要调用整个函数 -
@Thomas__ 谢谢!完美运行!如果您发布答案不接受
标签: javascript html authentication promise prompt