jwt - Express Gateway JWT 问题
问题描述
我使用快速网关作为 API 网关。我希望 EG(Express Gateway)对我的 keycloak 服务器将签名的 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 未经授权。
有谁知道我在配置上做错了什么?
解决方案
使用当前配置,您需要创建一个内部凭证JWT
凭证,以便 Express Gateway 可以查找令牌并相应地检查它。
如果您想跳过此检查,只需将 设置为checkCredentialExistence
策略参数。然后请求将通过。false
jwt
干杯!
推荐阅读
- flutter - 如何提示用户在颤动中注销?
- c# - 使用 Visual Studio 16.3.2 模板创建 Razor 类库时出现问题
- java - 我需要帮助在 java 中进行更改。它没有正确发出变化
- reactjs - 在 TypeScript 模块解析期间未找到 Material-UI 组件
- apache-kafka - Kafka 控制台生产者消息大小
- c++ - 了解可变参数模板
- javascript - React Typescript地图循环接口错误
- python - 使用来自另一个数据帧的时间索引插入 pandas 帧
- ios - 如何在 Xcode 11 故事板中查看祖先和后代的约束?
- android - 深色主题更改时,Android 10 通知颜色不会更改