You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HotChocolate v13 Schema测试报错:无法解析@AuthorizeDirective

解决HotChocolate v13 Schema测试中AuthorizeDirective无法解析的问题

问题原因

HotChocolate v13对授权模块的注册逻辑进行了调整,不再像v12那样自动识别[Authorize]特性,必须显式完成授权服务的注册配置。

可行解决方案

在Schema构建的服务注册链中添加AddAuthorization()扩展方法,同时确保引入HotChocolate.Authorization命名空间:

修改后的Schema测试代码:

using HotChocolate.Authorization;

// ...

ISchema schema = await new ServiceCollection()
    .AddGraphQL()
    .AddAuthorization() // 新增该行,注册授权模块核心逻辑
    .AddQueryType<Query>()
        .AddTypeExtension<PackageQueries>()
        .AddTypeExtension<VersionQueries>()                
    .BuildSchemaAsync();

补充说明

  • 你之前尝试的AddType<HotChocolate.Authorization.Authorize>()无效,因为Authorize是特性而非Schema类型,v13需要通过AddAuthorization()来注册整个授权指令及配套处理逻辑。
  • 如果业务中用到自定义授权策略,还可以在AddAuthorization()中传入配置委托,示例:
.AddAuthorization(options =>
{
    options.AddPolicy("User_Read", policy => policy.RequireRole("User_Read"));
})

内容的提问来源于stack exchange,提问作者user21353952

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:42:12