2016-12-29 76 views
0

我正在运行快速服务器,并在我的端点上提供JWT保护。我正在测试我的/graphql端点,并收到403 Not allowed to provide a JWT token错误。我的其他终端工作正常,所以我不认为这是JWT签署或验证的问题。有任何想法吗?不允许使用JWT令牌来保护GraphQL端点

var jwt = require('express-jwt'); 

var app = express(); 

var jwtCheck = jwt({ 
    secret: new Buffer(config.secret, 'base64'), 
    audience: aud, 
    issuer: iss 
}); 

// enforce on all endpoints 
app.use(jwtCheck); 

app.use('/', postgraphql(config.db_string, config.db_schema, { 
    development: true, 
    log: true, 
    secret: config.secret, 
    graphiql: true, 
})); 

Postman Request landing on a vanilla graphql endpoint

+0

没有一些代码是不可能的... –

+0

@miparnisari没有太多可以分享的东西。它是'express'服务器上的一个vanilla'graphql'端点 –

+0

您能分享这个端点的代码吗?此外,必须有一个中间件功能来执行JWT保护,您能分享吗? –

回答

0

想通了,问题是有没有传递正确的参数PostgraphQL。如果您将授权标头中的JWT令牌传递给PostgraphQL,则需要一个秘密。如果该秘密不存在,则PostgraphQL将抛出错误403 Not allowed to provide a JWT错误。

+0

我相信这个行为在v3.3.0中是固定的 – Benjie