我正在尝试同时使用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()
方法中?
答案 0 :(得分:1)
PostGraphile当前从/_postgraphile/*
加载GraphiQL资产(JS,CSS),因此您可能希望将这些资产列入白名单。
另一种方法是在添加postgraphile
中间件之前,先安装jwt
-这样,它将不受其影响,并且您无需维护{{ 1}}列表。
.unless