后石墨+表达+jwt抛出'No authorization token found'即使Graphiql工作



我正在尝试一起使用jwt快速中间件和postgraphile中间件,我想添加一个例外,以便在graphiql接口中使用身份验证令牌。我知道 postgraphile 在/graphql上启动 graphql,在/graphiql上启动 graphiql,除非另有配置。所以在我的 jwt 中间件初始化中,我正在这样做:

app.use(jwt({ secret: process.env.JWT_SECRET}).unless({path: ['/', //graphiql/i, //graphql/i, /auth/i]}));

这使得它如此/graphiql/graphql/auth路由不需要身份验证令牌。这似乎工作正常,因为我可以很好地访问 graphiql 接口,并且我正在构建的 graphql 查询工作正常。但是,在我的快递终端中,它仍然试图连接一些东西,当我加载时会抛出No authorization token foundhttp://localhost:3000/graphiql

关于它可能试图击中的其他想法,我还必须添加到 JWT 中间件中的unless()方法中?

PostGraphile目前从/_postgraphile/*加载GraphiQL资产(JS,CSS(,所以你可能想把这些资产列入白名单。

另一种方法是在添加jwt中间件之前挂载postgraphile- 这样它就不会受到它的影响,并且您不需要维护.unless列表。

app.use(postgraphile(...));
app.use(jwt(...));
app.use(...);

相关内容

最新更新