2016-12-29 77 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