angular5 - 根据 Angular5 中的有效令牌加载任何组件
问题描述
我在 localStorage 中有令牌,我想重定向每次尝试使用无效令牌加载任何组件。我该怎么做?可以使用onInit()
功能,但我如何将它实现到每个组件?
解决方案
使用警卫:
@Injectable()
export class AuthGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (valid token) {
return true
} else { // invalid token, force to redirect
this.router.navigate(['/redirectUrl']);
return false;
}
}
}
和路由:
....
{ path: 'myRoute', component: MyComponent, canActivate: [AuthGuard]},
...
推荐阅读
- node.js - 500 错误取决于在 POST 请求中提交的数据
- java - 将 ObservableLis 转换为 ObservableValue
- reactjs - firebase.auth() 中缺少 doSignInWithEmailAndPassword()
- docker - 无法加载 DLL 'activeds.dll'
- javascript - 护照没有设置cookies?
- python - 如何在Python3中“str.join”两个列表到所有组合的字符串?
- javascript - npm csv-parse 未读取所有行
- linux - 允许 Apache 在 root 中执行命令?
- r-markdown - 在 r-markdown 中编织/渲染时是否可以指定 .rmd 文件的名称?
- javascript - NodeJS 和 Express;连接查询回调完成