【问题标题】:How to set session timeout or expired token in angular?如何以角度设置会话超时或过期令牌?
【发布时间】:2019-03-02 21:51:21
【问题描述】:

目前我正在研究角度,我想设置自动注销或想让自动会话在角度帮助中过期?

authguard.guard.ts

export class AuthguardGuard implements CanActivate {

constructor (private user : SupportService,private router : Router) {}
canActivate(
  next: ActivatedRouteSnapshot,
  state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
   if(localStorage.getItem('username')){  
      return true;
   }else{
      this.router.navigate(['/login']);
      return false;
    }
  }
}

login-form.component.ts

export class LoginFormComponent implements OnInit {

userObj : User = new User();
constructor(private router : Router, private user : SupportService, private route : ActivatedRoute) { }
loginUser(e){
const formData = new FormData();
formData.append('username',this.userObj.username);
formData.append('password', this.userObj.password);
this.user.getUserPass(formData).subscribe(
  (data) => {
    if(data != undefined && data.payload != undefined && data.status == 1){
      e.preventDefault();
      this.router.navigate(['/base/dashboard']);    
      localStorage.setItem('userid',data.payload[0].userid);
      localStorage.setItem('username',data.payload[0].username);
    }else{
      alert('Please Enter Valid UserName OR Password');
     }    
    }  
   )
  }
}

【问题讨论】:

    标签: angular local-storage angular-directive


    【解决方案1】:

    您可以在销毁 cookie 后用作无效令牌的角度 cookie,然后检查 cookie 数据是否不具有此条件也作为令牌删除并在新令牌后获取

    【讨论】:

    • 我试过这种方法,但没有找到正确的方法,你能帮我写代码吗?
    • John,您也可以用作 cron 服务,因此可以作为设置时间的服务进行管理,并在您设置时间时调用此 cron
    • 或使用另一种解决方法,例如您可以管理 setTimeOut() setTimeout(function(){ localStorage.removeKey('token'); },10000000) 在这里您可以根据需要管理时间作为会话销毁
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 2021-02-18
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多