javascript - 在 NestJS 中,有没有办法将数据从 Guards 传递到控制器?
问题描述
所以我目前在我的组织中广泛使用 NestJS。出于身份验证的目的,我们使用自己的警卫。所以我的问题是,如果有任何方法可以将数据从警卫传递到控制器,除了response.locals
expressjs,任何人都可以指导我吗?这是对框架的硬依赖,我现在不希望这样。
TIA。
解决方案
将数据从 Guard 传递到 Controller 的唯一方法是将数据附加到请求的字段或使用某种元数据反射,这可能变得比它的价值更具挑战性。
在你的保护下,你可以有一个canActivate
像
canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
const req = context.switchToHttp().getRequest();
if (/* some logic with req */) {
req.myData = 'some custom value';
}
return true;
}
req.myData
然后在您的控制器中,您可以拉回some custom value
绳子。
推荐阅读
- sql - 查找时间间隔中缺失的日期 (SQL)
- javascript - Mikado 循环波谷数据
- javascript - 如何将其更改为数字并保留所有数字
- node.js - 如何启用 Chromium 扩展?
- javascript - 如何在 React 中渲染存储在对象中的数组?
- javascript - 我们如何访问 ES6 类中的私有变量?
- spring - 在 optaplanner 中计划一个时间表,考虑到课程需要 2 小时或 3 小时
- sql - SQLPLUS:设置 sqlformat 插入:SP2-0158
- azure - 在 Pulumi 中使用服务原理向 Azure 进行身份验证
- java - 休眠:找不到命名参数 []