我想验证存储在Express Gateway中cookie中的JWT令牌。我尝试了gateway.config.yml的以下配置,但不起作用。
在Express Gateway中可以这样做吗?
HTTP请求
Cookie: culture=EN-US; jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1ZGU5ZmZiMjFmNThhODIxYjhhOWFhZGEiLCJyb2xlcyI6W10sImlhdCI6MTU3NTk3MDM0OSwiZXhwIjozNzIzNDUzOTk2fQ.TEgRSc9V6a6UA-7ppx54xu8kGWfQ1SOq9s3JQQnqEWk
- jwt:
- action:
secretOrPublicKey: 'xxxxxxxx'
checkCredentialExistence: false
jwtExtractor: header
jwtExtractorField: Cookie['jwt']
答案 0 :(得分:0)
自从发布这个问题以来大约一年半过去了,我今天遇到了同样的问题。根据我在消息来源中看到的情况,您似乎无法执行此操作(截至目前)。
Express Gateway 的 jwt
策略在下面使用 passport-jwt
,尽管 passport-jwt
确实允许传入自定义提取器以从请求中提取 JWT(如在您的用例中,您希望从一个特定的 Cookie),Express Gateway 目前尚未公开此功能。
参考文献:
[1] Express Gateway JWT 政策:https://github.com/ExpressGateway/express-gateway/tree/master/lib/policies/jwt
[2] Express Gateway 公开的 passport-jwt
提取器:https://github.com/ExpressGateway/express-gateway/blob/master/lib/policies/jwt/extractors.js (header
, query
, authScheme
, authBearer
)
[3] 将自定义提取器传递给 passport-jwt
:https://www.npmjs.com/package/passport-jwt#writing-a-custom-extractor-function