javascript - 是否使用 Google Sign-in 持续登录 Firebase?

标签 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);
  });
}

最佳答案

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

关于javascript - 是否使用 Google Sign-in 持续登录 Firebase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38557355/

相关文章:

javascript - 爆米花构造函数语法

javascript - 当用户登录时,如何在passport.authenticate(本地)中返回用户对象?

google-app-engine - 来自 Google App Engine 的使用 Firebase 的 Google EndPoint 身份验证 - HTTP 请求中不包含任何身份验证 token

ios - Firebase 匿名登录 - 为什么 FirebaseID 在登录到 Facebook 时发生变化,但在未登录到 Facebook 时保持不变?

android - Phone Number 和 Email 验证都可以在 Firebase 中应用吗?

javascript - jQuery:向下滚动和向上滚动具有幻灯片效果

javascript - 如何允许我的 Asp.net MVC 3 Web 应用程序使用 MathJax 接受用户输入 $x<y>z$?

javascript - 在图像的边框之间切换并删除其他现有图像的边框

Android Firebase Facebook 身份验证注销功能

swift - 类型 'AuthDataResult' 的值没有成员 ‘uid’