gpt4 book ai didi

javascript - 在某个函数中包含函数

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:20 25 4
gpt4 key购买 nike

我正在为我的 Angular 色守卫获取一个 json 对象,我正在尝试检查并查看用户是否有一组 Angular 色,其中一个 Angular 色在该操作的可接受 Angular 色列表中。我的功能设置如下:

export class RoleGuard implements CanActivate{
constructor (private readonly reflector: Reflector, readonly jwtService: JwtService) {}
public canActivate(context: ExecutionContext): boolean {
const roles = this.reflector.get<string[]>('groups', context.getHandler());
if (!roles) {
return true;
}
const request = context.switchToHttp().getRequest();
const user: any = this.jwtService.decode(request.headers.authorization.substr(7), { json: true, complete: true });
// tslint:disable-next-line:ter-arrow-parens
const hasGroup = () => user.payload.groups.some((role: any) => roles.includes(role));
return user && user.payload.groups && hasGroup();

user.payload.groups 是用户拥有的 Angular 色数组,“Angular 色”是可以执行该操作的已接受 Angular 色列表。然而,每次程序运行时,即使 Angular 色正确,它也会失败。这里发生了什么我没有看到?我从 nestjs 网站的文档中得到了这个:https://docs.nestjs.com/guards

组对象示例:

Array(3) ["role1", "role2", "role3"]
length:3
__proto__:Array(0) [, …]
0:"role1"
1:"role2"
2:"role3"

Angular 色对象示例:

Array(2) ["role4", "role3"]
length:2
__proto__:Array(0) [, …]
0:"role4"
1:"role3"

最佳答案

所以我发现这个问题与 Angular 色守卫代码无关。这工作正常问题是 Angular 色名称不匹配。我和我的 friend 解决了这些名字,一切正常。我有点不好意思,感谢您提供的所有帮助。

关于javascript - 在某个函数中包含函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52973770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com