Firebase: Как получить токен аутентифицированного пользователя с помощью firebase api после успешного входа по электронной почте? - PullRequest
0 голосов
/ 13 октября 2018

Я использую Firebase JS SDK (страница настройки SDK) на login.html, где зарегистрированные пользователи вводят свои учетные данные, а затем вызывается firebase.auth () signInWithEmailAndPassword для входа в системуin.

Login.html

HTML:
    Email: <input type="email" name="login-email" id="login-email"> <br/>
    Password: <input type="password" name="login-password" id="login-password">
    <input type="submit" name="login-submit" id="login-submit">

SCRIPT:
    var loginEmailInput = document.getElementById('login-email');
          var loginPasswordInput = document.getElementById('login-password');
          var loginSubmitBtn = document.getElementById('login-submit');

    loginSubmitBtn.addEventListener('click', function(e){
              e.preventDefault();
              var email = loginEmailInput.value;
              var password = loginPasswordInput.value;

              firebase.auth().signInWithEmailAndPassword(email, password).then(function(user) {
                window.location.href="profile.html"
              }).catch(function(error) {
                var errorCode = error.code;
                var errorMessage = error.message;
                result.innerHTML = '<strong>'+ errorCode +' !</strong> + ' + errorMessage
              });
          })

После успешного входа пользователь перенаправляется на profile.html.В профиле pg я хотел бы получить подробную информацию только об аутентифицированном currentUser, поэтому я пробую следующий код, но он не работает:

profile.html:

firebase.auth().currentUser.getIdToken()
        //If token is returned, then get user details:
        .then((idToken) => {

        //store currentUser in user
        var user = firebase.auth().currentUser;

        var displayName = user.displayName;
        var email = user.email;
        var emailVerified = user.emailVerified;
        var photoURL = user.photoURL;
        var isAnonymous = user.isAnonymous;
        var uid = user.uid;
        var providerData = user.providerData;

        })
        .catch((error) => {
          // Error occurred.
        })

this firebase.auth().currentUser.getIdToken() не работает.Как это решить?

1 Ответ

0 голосов
/ 13 октября 2018

вам не нужен метод getIdToken, вы можете просто проверить, currentUser Object.

var user = firebase.auth().currentUser;

if (user) {   
   // User is signed in. 
    var displayName = user.displayName;
    var email = user.email;
    var emailVerified = user.emailVerified;
    var uid = user.uid;
    var providerData = user.providerData;
} else {   
   // No user is signed in. 
}

, если пользователь вошел в систему, firebase.auth().currentUser всегда будет содержать информацию о пользователе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...