【问题标题】:Not allowed to secure GraphQL endpoint with JWT token不允许使用 JWT 令牌保护 GraphQL 端点
【发布时间】:2017-05-13 07:38:08
【问题描述】:

我正在运行一个快速服务器,只是在我的端点上设置了 JWT 保护。我正在测试我的 /graphql 端点,我收到 403 Not allowed to provide a JWT token 错误。我的其他端点工作正常,所以我不认为这是 JWT 签名或验证的问题。有什么想法吗?

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,
}));

【问题讨论】:

  • 没有一些代码是无法分辨的......
  • @miparnisari 没什么可分享的。这是express 服务器上的普通graphql 端点
  • 你能分享这个端点的代码吗?另外,必须有一个中间件功能做JWT保护,你能分享一下吗?
  • @miparnisari Gotcha,更新:)
  • 好的,谢谢。但是您共享了中间件功能的代码,我们也需要端点的代码。

标签: node.js express jwt graphql postgraphql


【解决方案1】:

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

【讨论】:

  • 我相信此行为已在 v3.3.0 中修复
猜你喜欢
  • 1970-01-01
  • 2019-12-15
  • 2018-12-26
  • 2020-11-09
  • 2014-06-30
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多