Postgraphile + Express + JWT抛出“未找到授权令牌”,尽管graphiql有效

时间:2018-09-28 07:49:04

标签: node.js express jwt graphql

我正在尝试同时使用jwt Express中间件和postgraphile中间件,并且我想为graphiql接口添加一个具有auth令牌的例外。我知道除非另外配置,否则后石墨层将在/graphql上启动graphql,在/graphiql上启动graphiql。因此,在我的jwt中间件初始化中,我正在这样做:

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

这使得/graphiql/graphql/auth路由不需要auth令牌。这似乎很好用,因为我可以很好地进入graphiql接口,而我正在构建的graphql查询也很好。但是,在我的快速终端中,仍有一些它正在尝试连接的东西,当我加载http://localhost:3000/graphiql

时会抛出一个No authorization token found

我是否还想将其他东西添加到JWT中间件的unless()方法中?

1 个答案:

答案 0 :(得分:1)

PostGraphile当前从/_postgraphile/*加载GraphiQL资产(JS,CSS),因此您可能希望将这些资产列入白名单。

另一种方法是在添加postgraphile中间件之前,先安装jwt -这样,它将不受其影响,并且您无需维护{{ 1}}列表。

.unless