angular - 如何在 AuthGuard 中动态返回真值?
问题描述
我有一个具有多个条件的身份验证守卫,我想动态返回真值。我怎样才能做到这一点?下面是我的代码
auth.guard.ts
canLoad(route: Route, segments: UrlSegment[]): Observable<boolean>|Promise<boolean>|boolean {
const isSuperAdmin = this.authService.getAuth().role === 'SUPERADMIN';
const isAdmin = this.authService.getAuth().role === 'ADMIN';
if (!isAdmin || !isSuperAdmin) {
this.router.navigate(['/notifications']);
}
return true; //how can I return true dynamically?
}
解决方案
您可以定义一个布尔变量并相应地更改它:
像这样 :
canLoad(route: Route, segments: UrlSegment[]): Observable<boolean>|Promise<boolean>|boolean {
let dynamicReturn = false;
const isSuperAdmin = this.authService.getAuth().role === 'SUPERADMIN';
const isAdmin = this.authService.getAuth().role === 'ADMIN';
if (!isAdmin || !isSuperAdmin) {
//change dynamicReturn value accordingly
dynamicReturn = true
this.router.navigate(['/notifications']);
}
return dynamicReturn ; //how can I return true dynamically?
}
推荐阅读
- python - SimpleBlobDetector - 隔离与周围不同的斑点
- apify - 将 cookie 从 Actor 传递给 Crawler
- laravel - Laravel json 响应返回加密数据
- android - 粘性服务对 Android 中具有庞大单体代码库的应用程序的影响?
- android - 有没有办法在 ArCore 人脸跟踪中使用带有 AugmentedFaceNodes 的 ViewRenderables?
- c# - 使用 NLog GetLogger 切换回默认记录器
- arduino - 使用 NRF24le1 中断 arduino nano 的问题
- java - 如何编写 JpaRepository 方法来搜索具有存储在 Set 中的电话号码的用户
- javascript - 缩小 Webpack 块名称
- python - Flask_SQLAlchemy 不能像 SQLAlchemy 一样反映数据库