我目前使用 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/