Cookies 使用Cookie使用angularfire2持久化登录用户

Cookies 使用Cookie使用angularfire2持久化登录用户,cookies,angular,firebase,firebase-authentication,angularfire2,Cookies,Angular,Firebase,Firebase Authentication,Angularfire2,我正在使用angularfire2的简单自定义身份验证和Firebase的身份验证服务 import { Injectable } from '@angular/core'; import { AngularFire } from 'angularfire2'; import { Cookie } from 'ng2-cookies'; @Injectable() export class GlobalMenuService { loggedIn: boolean = false;

我正在使用angularfire2的简单自定义身份验证和Firebase的身份验证服务

import { Injectable } from '@angular/core';
import { AngularFire } from 'angularfire2';
import { Cookie } from 'ng2-cookies';

@Injectable()
export class GlobalMenuService {

    loggedIn: boolean = false;

    constructor(private af: AngularFire) { }

    login(email: string, password: string) {
        this.af.auth.login({
            email: email,
            password: password
        })
            .then((success) => {
                this.loggedIn = true;
            });
    }

    logout() {
        this.af.auth.logout();
        this.loggedIn = false;
    }
}
是否有办法将一些数据保存在cookie(令牌、uid、电子邮件或其他)中以恢复会话,即每次用户返回应用程序时重新登录,而无需编写凭据

您应该使用。当身份验证状态发生变化时,将调用此函数

this.af.auth.subscribe(user => {
  if (user) {
    // User is signed in.
    ... do other stuff
  } else {
    // No user is signed in.
    ... do other stuff
  }
});

如果您在打开应用程序时已登录,或使用Email和Password调用
登录
,则将调用此功能,
auth
将包含您记录的用户数据。

Firebase会自动处理会话。如果您使用的是Firebase v3,则令牌将在不过期的情况下刷新Hello,但情况似乎并非如此,我使用的是最新版本3.1.0。如您所见,我正在构造函数中注入AngularFire的实例,并且在启动应用程序时af.auth.getAuth()始终为null。我没有对firebase的直接引用,因为我的应用程序配置为使用AngularFire库。您可能知道库是否支持建议的方法,或者库中是否有与之相同的内容,因为我似乎找不到它?您是对的,我已经用找到的一些信息更新了我的答案,这解决了您的问题吗?:)我明白了,身份验证状态一直是持久的,我只是调用了错误的方法。谢谢你帮我解决了我的问题,但也谢谢你的友好和礼貌,因为这是我的第一篇帖子,我以为我会因为“文本格式不正确”或“信息不充分”或“X原因:)”而受到抨击。请。发布一个好的答案,然后投票/标记以重复结束其他问题。如果问题不是重复的,请根据问题定制您的答案。