通过Google登录持续登录Firebase?

时间:2016-07-24 22:13:45

标签: javascript firebase-authentication

我目前正在使用Firebase,以便用户使用自己的Google帐户登录才能访问该应用。但是,关闭页面/在新选项卡中打开页面需要用户再次登录。有没有办法阻止用户重新登录?

这是我正在使用的登录代码(来自firebase文档的示例)

function firebaseLogin() {
  firebase.auth().signInWithPopup(provider).then(function(result) {
    var token = result.credential.accessToken;
    var user = result.user;
    document.getElementById('user-name').innerHTML = user.displayName;
    document.getElementById('propic').src = user.photoURL;
    addClass(login, 'hidden');
    removeClass(logout, 'hidden');
    var snackbarData = {
      message: 'Login Successful',
      timeout: 2000
    };
    snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
    console.log(user);
    reloadList();
  }).catch(function(error) {
    var errorCode = error.code;
    var errorMessage = error.message;
    var email = error.email;
    var credential = error.credential;
    var snackbarData = {
      message: 'Login Unsuccessful',
      timeout: 2000
    };
    snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
    console.error(error);
  });
}

1 个答案:

答案 0 :(得分:0)

我不确定这是否是这样做的官方方法,但我最终保存了从localStorage中的firebase.auth().currentUser返回的用户,然后检查是否可以在localStorage中找到用户的文档加载。如果找到了用户,我只需将firebase.auth()。currentUser设置为等于localStorage中的用户,一切似乎都按预期工作。 (例如,如果没有经过身份验证的用户,则客户端将无法调用数据库,但以这种方式设置currentUser允许访问数据库。)