是否可以为除任何一个查询/变异之外的所有查询/变异运行中间件



我想为GraphQL中的所有突变/查询调用调用一个http中间件,但不想为一个查询调用?这可能吗?

编辑:如果用户被软删除,我想为所有需要用户登录的api发送用户停用响应。但是我不希望这个api再次成为restore的用户。

不,这在Lighthouse中是不可能的。

我建议使用@guard指令来解决此问题。https://lighthouse-php.com/5/security/authentication.html#attemptauthentication-中间件

所以基本上做一些类似的事情

extend type Query {
restore(email: String!, password: String!): User
}

然后对于所有其他查询

extend type Query @guard {
viewer: User! @auth
}

默认情况下,如果用户被软删除,那么auth:api将不允许其登录,因此没有理由对保护进行任何更改。

不,这是不可能的。我不会在Lighthouse中添加这样的功能。

如果您需要基于使用GraphQL字段的特定逻辑,则属于字段中间件。HTTP和GraphQL是两个独立的层,不能混为一谈。

最新更新