Express Gateway JWT问题

时间:2018-09-19 07:36:09

标签: jwt express-gateway

我正在使用Express网关作为API网关。我希望EG(Express Gateway)对我的密钥库服务器将签名的JWT进行身份验证。我在gateway.config.yml中的设置是这样的:

http:
  port: 6060
admin:
  port: 9876
  hostname: localhost
apiEndpoints:
  api:
    host: localhost
    paths: '/ip'
serviceEndpoints:
  httpbin:
    url: 'https://httpbin.org'
policies:
  - basic-auth
  - jwt
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
pipelines:
  default:
    apiEndpoints:
      - api
    policies:
    # Uncomment `key-auth:` when instructed to in the Getting Started guide.
      - jwt:
          secretOrPublicKey: MySuperSecretKey
      - proxy:
          - action:
              serviceEndpoint: httpbin 
              changeOrigin: true

我正在启动EG服务器,然后去https://jwt.io/选择HS256来设置有效负载,并生成密钥和JWToken。然后,我使用不记名令牌向邮递员发出请求,因为这是默认值,并且我得到了401未经授权。

有人知道我在做什么配置错误吗?

1 个答案:

答案 0 :(得分:1)

使用当前配置,您需要创建一个内部证书JWT,以便Express Gateway可以查找令牌并进行相应的检查。

如果要跳过此检查,只需将checkCredentialExistence设置为false作为jwt策略参数。然后请求将通过。

干杯!