2016-05-31 32 views
2

我不知道如何共享我的网站之间的身份验证。例如,我想在用户登录login.html后将身份验证传递给主页。Firebase通过网页之间的身份验证

是什么问题:用户在login.html的登录

后,将创建的认证。

//login.html 
var user = firebase.auth().currentUser; 
if (user) { 
    // User is signed in. 
} 

但是,我需要location.href更改用户登录后的Home.html。

//login.html 
if (user) { 
    // User is signed in. 
    location.href = "home.html"; 
} 

那么,什么是,确保身份验证更改网页的时候解决?

//home.html 
    if (user) { 
     // 
    }else { 
     // No user is signed in. 
    } 

网/ login.html的< - >网络/ home.html的

回答

1

火力地堡通过存储在本地存储会话ID跟踪页面之间的认证状态。

确保您的用户流畅流动的最佳方式是monitor the authentication state。从文档:

推荐的方式来获得当前用户是通过验证对象上设置观察员:

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    } else { 
    // No user is signed in. 
    } 
}); 

通过使用一个观察者,你保证验证对象当你得到当前用户时,它不处于中间状态 - 例如初始化。

+2

因此,我正在登录页面上正确地获取当前用户,但是当我尝试在主页上以与firebase.auth()。currentUser.uid相同的方式调用它时,它显示为空...不确定为什么? – Lion789