Firebase - 在进行身份验证时动态更改记住属性

时间:2015-08-11 23:28:38

标签: javascript firebase

我的html中有一个复选框输入,用户可以检查他/她是否希望在浏览器关闭后保持登录应用程序。我想改变之间记住:"默认",并记住:" sessionOnly"取决于用户是否选中此框。

我的功能是检查html中的框是否被选中:

function checkLoginTerm() {
    var result;
    if(document.getElementById('#loginkeeping').checked) {
        result = "sessionOnly";
    } else {
        result =  "default";
    }
    return result;
}

然后我调用登录函数中的函数,在用户进行身份验证后执行:

function loginUser(username, password) {
    if (checkVariable(username)) {var username = document.getElementById("loginUsername").value;}
    if (checkVariable(password)) {var password = document.getElementById("loginPassword").value;}
    firebaseRef.authWithPassword({
        email    : username,
        password : password
    }, function(error, authData) {
        if (error) {
            alert("Login Failed! "+ error, error);
        } else {
            console.log("Authenticated successfully with payload:", authData);
        }

    }, {
        remember: checkLoginTerm()
    });
}

如果我这样做,登录过程将永远不会完成。但是如果我在记住之后直接输入相应的字符串:(例如记住:" sessionOnly"),它会按照它所说的去做。

1 个答案:

答案 0 :(得分:0)

Rob DiMarco在我的问题下面的评论中指出,有两个小问题 -

  1. 元素的id是loginkeeping而不是#loginkeeping
  2. 我在checkLoginTerm()函数
  3. 中的条件语句中发生了逻辑错误