设置授权后,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:{ ... } }]
这将解决这个问题。