第一次注销后第二次登录不起作用

时间:2019-03-24 12:18:08

标签: angular authentication local-storage auth-guard

我已经编写了一个API,如果登录凭据正确,它将返回令牌和用户ID。 我将它们保存到本地存储中,如下所示: 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 :(得分:0)

伊迪亚 您可以在登录后返回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'])
    });
  
  }
}

相关问题