我已经编写了一个API,如果登录凭据正确,它将返回令牌和用户ID。 我将它们保存到本地存储中,如下所示: 如果用户令牌不再有效,请清除本地存储:
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,
});
}
})
第二次尝试登录本地存储不会保存任何内容。 我感谢任何想法:)
答案 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'])
});
}
}