【问题标题】:angular2-jwt check if token is expired in component?angular2-jwt 检查组件中的令牌是否过期?
【发布时间】:2017-07-29 08:44:58
【问题描述】:

是否可以在 Angular 2 应用程序的组件中检查 id 令牌是否已过期?我得到了一个 AuthService 方法

public isAuthenticated(): boolean {
  /* check if id_token is expired or not */
  return tokenNotExpired();
}

在模板中使用它工作正常。如果用户退出,则返回 false,在用户登录后,角度变化检测重新运行模板中的函数并返回 true。

在组件内部使用

@Component({
  selector: 'app',
  providers: [
    Auth
  ],
  templateUrl: 'app.template.html'
})

export class AppComponent implements OnInit {

  public isAuthorized: Object = {};

  constructor(private auth: Auth) {
    this.auth.handleAuthentication();
  }

  ngOnInit() {
    console.log(this.auth.isAuthenticated());
  }
}

用户登录后它不会更新。需要刷新页面。我该如何解决这个问题?

【问题讨论】:

    标签: angular token jwt


    【解决方案1】:

    我目前正在办公桌上使用 angular2 jwt 令牌,但遇到了同样的问题。 原来我们需要将localStorage中的token设置为“id_token”

    来自 angular2-jwt:

    tokenNotExpired - 允许您检查 本地存储 中是否有未过期的 JWT。如果用户未通过身份验证,这可用于有条件地显示/隐藏元素并停止导航到某些路线

    注意:默认情况下,tokenNotExpired 将假定令牌名称为 id_token,除非将令牌名称传递给它,例如:tokenNotExpired('token_name')。这将在未来的版本中更改为自动使用在 AuthConfig 中设置的令牌名称。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2018-06-19
      • 2018-12-19
      • 2020-06-30
      • 2021-12-21
      • 2023-04-04
      • 2020-09-29
      • 2023-03-27
      • 2016-08-16
      • 1970-01-01
      相关资源
      最近更新 更多