设置授权后,Express-Gateway响应错误

尝试在请求头中设置我的授权密钥(key-auth)时出现错误404。 我敢肯定,我的密钥没有任何问题,因为如果我没有设置它的禁止状态将返回。

在设置任何凭据之前:

$ curl http://localhost:8080/ip 

将返回:

 { "origin": "5.116.28.133" } 

在创build密钥validation凭证之后:

 $ curl -H "Authorization: apiKey ${keyId}:${keySecret}" http://localhost:8080/ip 

将返回:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Cannot GET /ip</pre> </body> </html> 

这是我的网关configuration:

 http: port: 8080 admin: port: 9876 hostname: localhost apiEndpoints: api: host: localhost paths: '/ip' serviceEndpoints: httpbin: url: 'https://httpbin.org' policies: - basic-auth - cors - expression - key-auth - log - oauth2 - proxy - rate-limit pipelines: - name: default apiEndpoints: - api policies: - key-auth: - proxy: - action: serviceEndpoint: httpbin changeOrigin: true 

有谁知道为什么会发生这个问题?

从http://www.express-gateway.io/find更多关于express-gateway的信息

尝试从policies:下的key-auth删除连字符policies:在您的configuration文件中 – 这对我有效。 它应该只是keyauth

它应该是key-auth问题是缩进

 - key-auth: - proxy: 

它必须在一个层面上

基本上这是一个数组:

 policies: [{ 'key-auth':null },{ proxy:{ ... } }] 

这将解决这个问题。