【发布时间】:2020-06-11 20:43:47
【问题描述】:
我在 Angular 中创建了这项服务,它可以防止 id 与链接中的用户不同但 idTemp 未定义的用户转到页面。我做错了什么?
import { Injectable } from '@angular/core';
import {
CanActivate,
ActivatedRouteSnapshot,
RouterStateSnapshot,
Router,
ActivatedRoute,
} from '@angular/router';
@Injectable({
providedIn: 'root',
})
export class MeAdminGuardService implements CanActivate {
constructor(private router: Router, private route: ActivatedRoute) {}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
):
| boolean
| import('@angular/router').UrlTree
| import('rxjs').Observable<boolean | import('@angular/router').UrlTree>
| Promise<boolean | import('@angular/router').UrlTree> {
var idTemp = this.route.snapshot.params['id'];
console.log('ID:', idTemp);
if (
JSON.parse(localStorage.getItem('currentUser')).role == 'Admin' ||
JSON.parse(localStorage.getItem('currentUser')).id == idTemp
) {
return true;
}
this.router.navigate(['/homepage']);
}
}
【问题讨论】:
标签: angular typescript frontend angular-services