angular - 如何显示在会话结束前 10 秒发出警告的模式?
问题描述
我在 Angular 中有一个项目,由于已知令牌无效,会话在 60 分钟结束时到期。目前我有一个 JWT 拦截器,当它检测到无效令牌时,它会将我带到登录页面。我想实现一个模式窗口,在该窗口中通知用户即将终止会话。我怎么能做到?
解决方案
当您从服务器获取令牌时,您可以为通知模式设置计时器。JWT 有一个 exp 字段,可以在令牌过期时保存数据,因此您的解决方案将如下所示:
setExpiredTimer(): void {
this.authService.token$
.pipe(
switchMap(({ exp }) => timer(Number(new Date(exp) - 10000)))
)
.subscribe(() => this.showNotificationModal());
}
推荐阅读
- c++ - 我正在修改一些代码,并将一些函数更改为系统调用,但现在我遇到了一些让我感到困惑的错误
- session-state - 是否可以使用 GTM 跨多个数据中心进行粘性会话?
- c++ - 构建 CppBenchmark 时出错 (https://github.com/chronoxor/CppBenchmark)
- .net-core - OpenIdConnect 的点网核心设置 redirect_uri 与点网框架不同?
- c++ - C++ 可重用模块类设计
- sql - 如何从两个表中获取特定记录
- javascript - 使用 .map 转换嵌套的 For 循环
- laravel - 图像在数据库中保存为 C:\wamp64\tmp\phpAE1C.tmp 而不是保存在 public/images
- mysql - GROUP BY 和 SUM 但拆分 GROUP BY 结果
- events - 为 RxJava 2.x 配置 Grails 事件总线调度程序