相关疑难解决方法(0)

NestJs - 无法在RolesGuard中获取用户上下文

我使用NestJS作为客户端API的框架.在框架内,我们正在使用一个非常标准的Passport/JWT auth基础设施,该工作正常.我们的AuthGuard在找到承载令牌时触发,并且在安全的API端点中,我可以通过'@Res()request注入HTTP上下文并访问'request.user'属性,该属性包含我的Jwt令牌的有效负载.

最重要的是,我们尝试以与文档中提供的示例代码非常相似的方式实现"RolesGuard"以及GitHub上的一些示例项目(其中没有一个实际使用此防护,但它们将其作为示例防护包括在内).

我们的问题是我们的AuthGuard会触发并验证Jwt令牌,然后我们的RolesGuard会触发,但它传递的请求对象没有附加到请求的用户元数据.

我们的RolesGuard中的关键代码是:

    const request = context.switchToHttp().getRequest();
    const user = request.user;

    if (!user) {
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

在上面剪断的用户总是假的.有没有人在Nest中编写了一个基于角色/权限的保护,成功访问了当前用户的范围?所有代码都被触发,所有内容都显示正确.

-Kevin

javascript nestjs

7
推荐指数
3
解决办法
2117
查看次数

标签 统计

javascript ×1

nestjs ×1