使用谷歌登录在Firebase上持久登录
Persist login on Firebase with Google Sign-in?
我目前正在使用Firebase,以便用户使用他们的谷歌帐户登录以访问该应用程序。但是,关闭页面/在新选项卡中打开页面需要用户再次登录。有没有办法防止用户重新登录?
以下是我正在使用的登录代码(来自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允许访问数据库。)
相关文章:
- Firebase-登录时获取url
- Cordova的Firebase/Phonegap:使用应用程序内的电子邮件/密码登录
- 如何进行允许浏览器刷新的匿名Firebase登录
- firebase登录与离子不工作
- Auth$getUser返回null,即使用户已登录(AngularFire,Firebase)
- 允许通过Cordova上的Firebase登录Facebook
- 获取登录用户的电子邮件(Firebase安全规则)
- Firebase登录没有提示
- 如何在使用 Firebase 登录或注销时更改状态而不刷新
- 陷入困境,使用Firebase使用Facebook登录
- 使用Internet Explorer 11无法登录Firebase
- 使用 Polymer 的 Firebase 登录回调
- 即时模式自动登录 Firebase
- 使用Firebase和Ionic登录Facebook后重定向视图
- Firebase身份验证与角度:用户登录
- 无法弄清楚使用 Firebase 使用 Github 登录
- AngularJS - 在 Firebase 登录后路由到不同的视图
- Firebase authWithOAuthPopup登录Facebook发出警告
- Firebase简单登录和Twitter API访问
- 如何在成功登录firebase后重定向用户