Angular 即使客户端pc时间错误,如何正确检查访问令牌是否从前端过期?

Angular 即使客户端pc时间错误,如何正确检查访问令牌是否从前端过期?,angular,typescript,jwt,Angular,Typescript,Jwt,我的电脑时间比实际时间晚了2分钟。这是因为它位于一个网络上,主pc的时间错误。在所有情况下,这都是一个很好的例子,前端认为令牌没有过期,而实际上它过期了,后端抛出一个错误 目前,为了了解令牌是否在前端过期,我使用以下方法: if( this.jwtHelper.isTokenExpired(token) ) { console.log ("Token expired!") } 由于我的pc时间落后2分钟,当令牌过期时,我还有2分钟的时间,前端认为此令牌仍然有效。有没有一种方法可以真正知道

我的电脑时间比实际时间晚了2分钟。这是因为它位于一个网络上,主pc的时间错误。在所有情况下,这都是一个很好的例子,前端认为令牌没有过期,而实际上它过期了,后端抛出一个错误

目前,为了了解令牌是否在前端过期,我使用以下方法:

if(  this.jwtHelper.isTokenExpired(token) ) {
  console.log ("Token expired!")
}

由于我的pc时间落后2分钟,当令牌过期时,我还有2分钟的时间,前端认为此令牌仍然有效。有没有一种方法可以真正知道令牌是否过期,即使客户端计算机上的时间设置错误?这是一个我必须担心的真实用例,还是我只需要修复我的pc时间,而不必担心这个问题?

我不能对JWT发表评论,因为它比我的应用程序需要的多一点,但我确实使用了令牌身份验证。在我的例子中,令牌在有效的用户名/密码身份验证时缓存在服务器上,并在过期时从缓存中退出。呈现过期令牌的客户端抛出401(未经授权)HTTP错误,my angular interceptor将此作为过期令牌捕获并重新路由到登录视图。

客户端将知道服务器响应状态代码何时为
401

这是唯一合法的事实来源。

请考虑这样一种情况,即您在令牌到期前立即发出请求——它似乎有效,但请求失败,即使您的客户端时间正确。你应该处理这些案件;客户机应该能够处理从服务器接收到的任何错误。事实上,我根本不需要事先检查,尽管可能是这样。