если первый пользователь уже вошел в систему, как запретить второму пользователю войти в другую вкладку - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь предотвратить несколько одновременных входов в систему, когда, если первый пользователь уже вошел в систему, он не позволит второму пользователю войти в систему на другой вкладке, мне нужен совет о том, что мне нужно сделать, на основе Google, я могу использовать localstorage и authguardи реализовал оба, но не решил проблему,

authentication.service.ts

isUserAuthenticated(): boolean {
    const user = localStorage.getItem(appConstant.currentUser);
    return user != null;
}

login.component.ts

ngOnInit(): void {
if (this.authenService.isUserAuthenticated()) {
  this.router.navigate([UrlConstants.UserSetting])
 }
}

когда первый пользователь уже вошел в систему, откройте вторую вкладку, вставив URL-адрес входа в систему, это будет работать, имя входа будет перенаправлено в настройки пользователя, но когда страница входа будет готова для обеих вкладок, когда первый пользовательский вход в систему,Второй пользователь также может войти, используя другой аккаунт.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

когда вы устанавливаете данные на localStorage, нам нужно проверить, есть ли уже вошедший в систему пользователь.

isUserAuthenticated(): boolean {
  if(localStorage.getItem(currentUser) != null)    
       return true;
  else {
     localStorage.setItem('currentUser',user);
       return false;
    }
  }

я думаю, что это решит вашу проблему:)

0 голосов
/ 05 декабря 2018

По вашему требованию у вас должна быть переменная, хранящаяся в localStorage, например:

totalUsers: number =0;
localStorage.setItem('totalUsersCount', totalUsers);


Увеличивать totalUsers каждый раз, когда происходит успешный вход в систему.Уменьшить / очистить его при выходе из системы.Итак, при входе в систему проверьте, равно ли значение localalstorage нулю.Если это так, разрешите вход в систему.Иначе, выкинь ошибку.

...