我正在使用灯塔-php来制作一个 graphql api,并且我在更改中间件(它将在新版本中被弃用)指令时遇到了麻烦。
extend type Query @middleware(checks: ["auth:api"]) {
task(id: ID @eq): Task @can(ability: "view" find:"id") @find
mytasks: [Task!]!
}
使用此代码效果很好。我的意思是,系统会检查用户是否已记录,并根据策略检查用户是否可以访问其任务,但是当我尝试将指令更改为如下所示的指令时:@middleware@guard
extend type Query @guard(with: ["api"]){
task(id: ID @eq): Task @can(ability: "view" find:"id") @find
mytasks: [Task!]!
}
始终返回用户未经身份验证。但是,在最后一种情况下,如果我删除@can指令,系统将检查用户是否已记录(但我需要根据策略检查用户是否可以访问指定的任务)。
我正在使用这些版本的软件包:
"joselfonseca/lighthouse-graphql-passport-auth": "^3.0",
"laravel/framework": "^6.2",
"laravel/passport": "^8.2",
"laravel/tinker": "^2.0",
"mll-lab/laravel-graphql-playground": "^2.0",
"nuwave/lighthouse": "^4.8"
有人尝试过这种麻烦吗?谢谢。
月关宝盒
泛舟湖上清波郎朗