使用 PHP Web 应用程序进行 Firebase 会话管理



我正在使用phpcodeigniter以及Firebase开发一个Web应用程序用于实时数据库。

在我的codeigniter视图中,我正在使用javascript代码来管理Firebase身份验证。

以下代码我用于管理Firebase通过电子邮件登录。

function login(){
var userEmail = "abcd@gmail.com" ;
var userPass = "password";
const fr = firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
// Handle Errors here.
console.log("got error");
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Error : " + errorMessage);
// ...
});

当我调用login()我在以下函数中获取用户对象时,我已经实现了Firebase AuthStateChangeListner。

firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
console.log("signin");
console.log(user);
} else {
// No user is signed in.
console.log("no sign");
}
});

在页面加载时,我正在调用登录函数获取成功的用户对象。

$(function(){
login();
});

现在的问题是,如果我移动到另一个页面并尝试像这样访问当前用户对象,那么我就会得到一个 null。

var user = firebase.auth().currentUser;

如何跨多个页面重定向管理 Firebase 登录会话?

若要获取当前用户,请始终使用状态更改侦听器。这是因为获取用户配置文件可能需要往返服务器,因此是异步发生的。

因此,在新页面中,只需使用与之前相同的代码:

firebase.auth().onAuthStateChanged(function(user) {
if (user) {
console.log(user);
} else {
console.log("not signed in");
}
});

相关内容

  • 没有找到相关文章

最新更新