gpt4 book ai didi

javascript - firebase SERVER_ERROR 的电子邮件/密码身份验证

转载 作者:行者123 更新时间:2023-11-30 12:59:48 25 4
gpt4 key购买 nike

我正在尝试使用 Firebase 的简单登录并尝试遵循 How do I use Firebase Simple Login with email & password 中列出的一般方法.

但是,每次我尝试创建一个新用户(或登录)时,我都会得到一个

SERVER_ERROR: The connection to wss://s-xxxxxxxx was interrupted while the page was loading.

这是怎么引起的,我该如何解决?

此外,当我对值进行硬编码(即在注册提交处理程序之外获取 createUser)时,它在 Firefox 上工作,但在 Chrome 上不工作。

login.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase.js'></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-simple-login.js'></script>
</head>
<body>
<div id="login_or_register">
</div>
<button id="logout">Logout</button>
<script type='text/javascript' src='loginScript.js'></script>
</body>
</html>

loginScript.js

function showLoginRegister(auth){

$register_form = $('<form id="register">'+
'<input type="text" name="register-email" id="register-email" value="email@example.com">'+
'<input type="password" name="register-password" id="register-password" value="password">'+
'<input type="submit" value="Create an account!"/>'+'</form>')

$login_form = $('<form id="login">'+'<input type="text" name="login-email" id="login-email" value="email@example.com">'+
'<input type="password" name="login-password" id="login-password" value="password">'+
'<input type="checkbox" name="rememberCheckbox" id="rememberCheckbox" checked>'+
'<input type="submit" value="Sign in"/>'+'</form>')
$('#login_or_register').append($register_form,$login_form);

$("#register").submit(function() {
var email = $("#register-email").val();
var password = $("#register-password").val();
auth.createUser(email, password, function(error, user) {
if (!error) {
auth.login("password", {
email: email,
password: password,
rememberMe: false
});
}
else{
console.log(error);
}
});
});

$("#login").submit(function() {
var email = $("#login-email").val();
var password = $("#login-password").val();
var checkbox = $("#rememberCheckbox").val();
auth.login("password", {
email: email,
password: password,
rememberMe: checkbox
});
});
};


var ref = new Firebase('https://xxx.firebaseio.com/');
var auth = new FirebaseSimpleLogin(ref, function(error, user) {
if (error){
console.log(error);
return;
}
if (user) {
// user authenticated with Firebase
$("#logout").click(function(){
auth.logout();
})
}
else {
showLoginRegister(this);
// user is logged out
}
});

最佳答案

您看到的问题是登录方法的网络请求失败,因为您在完成之前离开当前页面。表单实际上正在提交,结果页面正在重定向/刷新。

为了防止这种行为,请更新您的代码以在每个 $(element).submit() 方法的底部包含一个 return false;,这将阻止提交表单并完成身份验证请求。

$("#el").submit(function() {
// Do stuff here ...
return false;
});

关于javascript - firebase SERVER_ERROR 的电子邮件/密码身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com