angular - eğer ilk kullanıcı zaten giriş yaptıysa, ikinci kullanıcının başka bir sekmede giriş yapmasını nasıl engellerim


Birinci kullanıcı zaten giriş yapmışsa ikinci kullanıcının başka bir sekmede giriş yapmasını önleyecek birden fazla eşzamanlı girişi önlemeye çalışıyorum, ne yapmam gerektiği konusunda tavsiyeye ihtiyacım var, Google'a göre localstorage ve authguard kullanabilirim ve ikisini de uyguladım ama sorun çözülmedi.

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])
 }
}

İlk kullanıcı zaten giriş yapmışken, giriş URL'sini yapıştırarak ikinci sekmeyi açın, bu çalışır, giriş kullanıcı ayarlarına yönlendirir, ancak giriş sayfası her iki sekme için hazır olduğunda, ilk kullanıcı giriş yaptığında, ikinci kullanıcı da farklı bir hesap kullanarak giriş yapabilir.

Cevap #1

Verileri localStorage'a ayarladığınızda, zaten giriş yapmış bir kullanıcı olup olmadığını kontrol etmemiz gerekiyor.

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

Bence bu sorununuzu çözecek :)

Cevap #2

Gereksiniminiz için, localStorage'da şöyle bir değişken saklamalısınız:

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

Başarılı bir giriş gerçekleştiğinde totalUsers değerini artırın. Çıkış yapıldığında ise azaltın veya temizleyin. Yani, girişte localstorage değerinin sıfıra eşit olup olmadığını kontrol edin. Eğer öyleyse, girişe izin verin. Aksi takdirde, bir hata fırlatın.