angular - 如果发生令牌还活着,则在 auth gurd 函数中销毁所有组件
问题描述
Angular onDestroy 检测到问题
如您所知,在以下情况下未检测到破坏事件
- 在 URL 栏输入键
- 按下 F5 键
检查以下情况的方法实际上 Token 是活着的
所以我尝试在上述操作之后检查现有令牌。我从 ActivatedRoute 中捕获了 AppComponet 类实例。Token 被快速保存到 LocalStorage 中,因此可以使用 Token 获取管理数据。并返回当前页面,但 Angular 创建了新的组件。我应该在返回当前页面之前销毁所有组件,但我不确定该怎么做。如果你知道,请告诉我方法。
async canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Promise<boolean> {
// token check
let result = this.authFactiry.CheckToken();
if (result) {
// get manage data for user
result = await this.authFactiry.GetData();
}
if (result) {
this.destoryComponents(); // <- I would like to know this detail
return result;
}
const comp = this.route.Component; // this is AppComponent
// if check error navigate to login page
this.router.navigate(['login']);
return result;
}
解决方案
推荐阅读
- html - 使用 CSS/ 渲染简单的 html 页面响应式
- ssis - SSIS 脚本组件 - 无法加载文件或程序集 Microsoft.IdentityModel.Clients.ActiveDirectory 版本 = 2.29.0.1078 或其依赖项之一
- java - Java while(条件未达到)??为什么
- c++ - 类与结构的 C++ 效率
- ios - Swift pod 依赖 Firebase,pod spec lint 错误
- laravel - 如何将 nanoid 包从 npm 导入 Laravel?
- html - 具有最大列数的 CSS Grid 具有动态子项
- node.js - 打字稿覆盖 .env 文件设置
- ruby-on-rails - 无法将未经许可的参数转换为哈希
- node.js - api 调用受到另一个 api 调用验证的影响