输入正确的凭据时显示欢迎页面?

时间:2016-08-26 11:25:25

标签: javascript html firebase firebase-authentication

我有这个用户登录的代码:

function logUserIn(){
    var email = document.getElementById('username').value;
    var password = document.getElementById('password').value;
    firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
      var errorCode = error.code;
      var errorMessage = error.message;
      console.log(errorMessage)
      console.log('didnt log in')
    });
  };

这是html:

          username:<br>
          <input id="username" type="text" name="username" ><br>
          password:<br>
          <input id="password" type="text" name="password" ><br><br>
          <input type="submit" onclick=logUserIn() value="Log in">
          <input type="submit" onclick=submitToDatabase() value="Sign Up">
          <input type="submit" onclick=getUsers() value="Get Users">

如何才能仅使用javascript提交此数据,那么如果他们输入正确的凭据,则会将他们带到页面,例如welcome.html? 我知道我可能需要使用表单并提交,但我不确定如何在JS中单独完成并且不使用PHP。 我希望它说欢迎用户(用户是他们登录的电子邮件)

2 个答案:

答案 0 :(得分:0)

为此,您需要检查错误,然后继续进行重定向。

以下是Firebase文档中的示例代码:

public class FooFragment extends Fragment implements FooAdapter.Listener {

    // In onCreate()
        ...
        FooAdapter adapter = new FooAdapter();
        adapter.addListener(this);
        ...

    @Override public void onItemClicked() {
        // Add your logic here.
    }
}

了解更多信息。 // Sign in with email and pass. // [START authwithemail] firebase.auth().signInWithEmailAndPassword(email, password) .then(function(user) { console.log(user); // DO YOUR REDIRECTION HERE }).catch(function(error) { if(error) throw error; }); 方法返回firebase.Promise。

  

signInWithEmailAndPassword(email,password)返回包含非null firebase.User的firebase.Promise

您可以在此处阅读更多内容:https://firebase.google.com/docs/reference/js/firebase.Promise#then

对于重定向,您可以使用signInWithEmailAndPassword。这是一份文件。链接:https://developer.mozilla.org/en-US/docs/Web/API/Location/replace

希望这有帮助!

答案 1 :(得分:0)

始终使用onAuthStateChanged()来跟踪用户的登录或注销状态。

//Handle Account Status
firebase.auth().onAuthStateChanged(user => {
  if(user) {
    window.location = 'welcome.html'; //If User is logged in, redirect to welcome page
  }
});

上述代码将确保如果用户成功登录,则会将其重定向到欢迎页面。