nestjs - Nest.js:为所有路由添加护照策略
问题描述
我正在尝试将护照 jwt 策略添加到所有以/api
.
我在文档中找不到任何这样的例子。我不想@UseGuards
在每个端点中添加装饰器。
谢谢!
解决方案
不可能立即将守卫仅绑定到特定路线,但是可以向守卫添加一些逻辑以检查您是否在特定路线中(或不在)并运行逻辑(或短路)。可能像
@Injectable()
export class APIGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
const req = context.switchToHttp().getRequest();
if (!req.url.contains('api')) {
return true;
}
const isValid = this.checkValidity(context);
return isValid;
}
private isvalid(context: ExecutionContext) {
// do your logic. Only brought to a separate method to keep the `canActivate` cleaner
}
}
推荐阅读
- neo4j - Neo4j中如何找到具有多个节点和多个关系的最短路径
- reactjs - 向现有道具添加新类型
- ruby-on-rails - 在 Rails 应用程序中全局覆盖布局
- c# - 如何使用 ValueConversions 检索 Entity Framework Core 的数据库模型
- scala - 如何将数据框中的每一列转换为具有 ColumnName 和 ColumnValue 的行
- mysql - 使用计算值或触发器来更新同一表中不同行的数据的行?
- java - 我正在尝试通过 ModBus RTU 协议从时间计数器 OVEN 获取数据,但收到垃圾作为响应
- python - 为什么使用 list() 构造函数?
- php - 从 nuxt.js 发布到 laravel 后,值变为空
- wagtail - 如何在 InlinePanel 中设置初始空(可订购)项目的数量?