2017-04-15 55 views
5

我有一個使用angularfire2的有效身份驗證,我只是想知道是否有另一種方法來檢查用戶是否在用戶最近登錄而不訪問服務器之後進行身份驗證? 我做的方式是這樣的檢查用戶是否仍然在angularfire2中進行身份驗證

isAuthenticated():boolean{ 
this.af.auth.subscribe(data => { 
    if(data){ 
    // User is authenticated 
    return true; 
    } 
}); 
} 

任何幫助表示讚賞

編輯1:

我決定仍然使用原來的代碼來檢查,如果用戶在最近一次登錄是什麼如果您在應用程序啓動時沒有檢查用戶,建議使用@cartant就足夠了,因爲它可能會按照Firebase官方文檔中的說明返回null。我在這裏使用的方式是我的菜單項只應顯示給已認證的用戶,並且在頁面初始加載時使用firebase.auth().currentUser將始終返回null。

+0

什麼是你越來越多。任何錯誤或? – Aravind

+0

@Aravind我沒有收到錯誤。我只想知道是否有方法檢查用戶是否登錄而不使用this.af.auth.subscribe() – brijmcq

回答

7

AngularFire2目前正在進行一些重構,其認證API的重要部分將被刪除,以支持將Firebase Web API與AngularFire2結合使用。有更多的信息在this issue

您使用過的觀察值將保留在AngularFire2中,您可以訂閱它以接收認證狀態更改的通知。

但是,如果你有興趣的是確定是否有是當前認證的用戶,有火力地堡的Web API的currentUser屬性,會告訴你:

import * as firebase from "firebase"; 
... 
console.log(firebase.auth().currentUser); 
+0

感謝您的答案。是的,我也在某處看到了這個代碼。我只是認爲在angularfire2中可能會有這樣的API。我想我只是需要等待這個更新。 – brijmcq

+1

不用擔心。我試圖在答案中指出的一點是,AngularFire2正在進行重構,以避免簡單地包裝可以使用底層Firebase Web API完成的事情,並且將會鼓勵使用這兩者。所以'currentUser'的等價物不會被添加到AngularFire2中,您現在可能會立即開始使用Firebase Web API的'currentUser'。 – cartant

+0

再次感謝你!我會記住這一點。 – brijmcq

相關問題