【问题标题】:(HTML/Js) Authentication Using Prompts and Promises(HTML/Js) 使用提示和承诺的身份验证
【发布时间】: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


【解决方案1】:

根据评论:

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) {
          authenticateUser(); // recall method
        } else {authenticated == true}
      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2020-02-20
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多