2016-12-29 3 views
0

Ich bin ein Express-Server und nur JWT-Schutz auf meinen Endpunkten. Ich habe meinen /graphql Endpunkt getestet und erhalte einen 403 Not allowed to provide a JWT token Fehler. Meine anderen Endpunkte funktionieren gut, daher glaube ich nicht, dass es ein Problem mit der JWT-Signierung oder Verifizierung ist. Irgendwelche Ideen?Nicht erlaubt, GraphQL Endpunkt mit JWT Token zu sichern

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

Es ist unmöglich, ohne etwas Code zu sagen ... –

+0

@miparnisari Es gibt nicht viel zu teilen. Es ist ein Vanilla 'graphql'-Endpunkt auf einem Express-Server –

+0

Können Sie den Code für diesen Endpunkt freigeben? Außerdem muss es eine Middleware-Funktion geben, die den JWT-Schutz übernimmt, können Sie das teilen? –

Antwort

0

es herausgefunden, Problem war mit nicht die richtigen Parameter zu PostgraphQL vorbei. Wenn Sie ein JWT-Token im Autorisierungsheader an übergeben, erwartet es ein Geheimnis. Wenn das Geheimnis nicht existiert, dann wird den Fehler 403 Not allowed to provide a JWT Fehler werfen.

+0

Ich glaube, dass dieses Verhalten in v3.3.0 behoben ist – Benjie