Как проверить и сохранить, правильно ли пользователь вошел в систему? - PullRequest
1 голос
/ 14 октября 2019

Есть ли лучший способ проверить, вошел ли пользователь в систему? Поскольку я использую следующий подход для нескольких приложений, и их обслуживание каким-то образом вызывает различия, так как это путает элемент текущего приложения с элементами другого приложения.

Я проверяю, вошел ли пользователь в систему следующим образом:

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 Ответ

1 голос
/ 14 октября 2019

Если каждое приложение обслуживается из своего собственного домена, то у каждого будет свой собственный localStorage, и между ними не может быть никакого конфликта / путаницы.

Если вы обслуживаете несколько приложений изВ этом же домене вы должны будете использовать уникальное имя в локальном хранилище для каждого приложения. Что-то вроде localStorage.setItem('app1_user', null) против localStorage.setItem('app2_user', null).

Но учтите, что в Firebase Authentication только один аутентифицированный пользователь имеет на домен. Таким образом, если вы обслуживаете несколько приложений из одного домена, пользователь (в соответствии с Аутентификацией Firebase) вошел во все (или ни в одно из них) одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...