如何查看和存储用户是否正确登录?

时间:2019-10-14 14:35:09

标签: html angular firebase firebase-authentication

是否有更好的方法来检查用户是否已登录?,因为我对多个应用程序使用以下方法并为它们提供服务会造成差异,因为这会使当前应用程序的项目与其他应用程序的项目混淆项目。

我检查用户是否这样登录:

constructor(private afAuth: AngularFireAuth, private router: Router, private db: AngularFirestore) {
    this.userData = new ReplaySubject<UserDetails>();
    afAuth.auth.onAuthStateChanged(user => {
      if (user) {
        this.user = user;
        const local = localStorage.getItem('user');
        if (local !== null) {
          this.userData.next(JSON.parse(localStorage.getItem('user')));
        } else {
          this.fetchUserData();
        }
      } else {
        localStorage.setItem('user', null);
      }
  });
}

get isLoggedIn(): boolean {
    const user = localStorage.getItem('user');
    return user !== 'null';
}

1 个答案:

答案 0 :(得分:1)

如果每个应用都是从其自己的域提供服务,则每个应用都会拥有自己的localStorage,并且它们之间不会有任何冲突/混乱。

如果要从同一域中提供多个应用程序,则必须在本地存储中为每个应用程序使用唯一的名称。 localStorage.setItem('app1_user', null)localStorage.setItem('app2_user', null)之类的东西。

但是请注意,Firebase身份验证每个域只有一个经过身份验证的用户。因此,如果您要从同一域中提供多个应用程序,则该用户(根据Firebase身份验证)将同时登录所有应用程序(或不登录)。