我有一个使用angularfire2的工作认证,我只是想知道是否有另一种方法来检查用户最近登录后是否在用户服务器上进行了身份验证? 我这样做的方式就像这样
isAuthenticated():boolean{
this.af.auth.subscribe(data => {
if(data ){
// User is authenticated
return true;
}
});
}
感谢任何帮助
编辑1:
我决定仍然使用原始代码来检查用户是否最近登录。当你在应用程序启动时没有检查用户时,@ cartant建议的内容足够好,因为它可能会返回null,如firebase官方文档。我在这里使用它的方式是我有菜单项只应该向经过身份验证的用户显示,并且使用firebase.auth().currentUser
将始终在页面的初始加载时返回null。
答案 0 :(得分:10)
AngularFire2目前正在进行一些重构,其身份验证API的重要部分将被删除,以支持将Firebase Web API与AngularFire2结合使用。 this issue中有更多信息。
您使用的observable将保留在AngularFire2中,您可以订阅它以接收身份验证状态更改的通知。
但是,如果您感兴趣的是确定是否有当前经过身份验证的用户,则Firebase Web API中会有currentUser
属性告诉您:
import * as firebase from "firebase";
...
console.log(firebase.auth().currentUser);
答案 1 :(得分:-1)
您现在可以使用预构建的Route users with AngularFire guards