2017-04-15 60 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

相关问题