Второй вход после первого выхода не работает - PullRequest
1 голос
/ 24 марта 2019

Я написал API, который возвращает токен и идентификатор пользователя, если учетные данные для входа верны.Я сохраняю их в локальном хранилище, например: localstorage Если токен пользователя больше не действителен, я очищаю локальное хранилище:

localStorage.clear();

Код входа:

this.http.post('http://localhost:5000/v1/login?username='+username+'&password='+password, JSON.stringify(params)).subscribe(res => {
if(res.token != null)
  {
    this.snackBar.open('Successfully Logged in..', 'x', {
      duration: 2000,
    });
    localStorage.setItem('auth-token', res.token)
    localStorage.setItem('userid', res.userid)
    this.router.navigate(['/dashboard'])
  }
  else{
    this.snackBar.open('User not found or wrong password..', 'x', {
      duration: 2000,
    });
  }
})

Второй раз при попытке войти в локальное хранилище ничего не экономит.Я ценю любую идею:)

1 Ответ

0 голосов
/ 24 марта 2019

Идиа вы можете вернуть данные json после входа в систему:

/* return backend DATA JSON*/
{
  "isLogin":true,
  "remember_token":'Token'
}

//Angular front-end
isCheckLogin:boolean=false
dataUser:any={}
dataInfo:any={}

//FUNCTION LOGIN
login=()=>{
      this.http.post('http://localhost:5000/v1/login?username='+username+'&password='+password, JSON.stringify(params)).subscribe(res => {
          this.dataUser = res;
          if(this.dataUser.islogin){
            this.isCheckLogin=true;
            localStorage.setItem('auth-token', this.dataUser.remember_token);
          }
      })
}

//FUNCTION CHECKLOGIN
check_login = ()=>{
  let data = localStorage.getItem('auth-token');
  if(data.length>0){
    
    this.http.get("http://http://localhost:5000/v1/user?token="+data).subscribe(item=>{
        this.dataInfo = item;
        this.router.navigate(['/dashboard'])
    });
  
  }
}
...