Cookie中的Express Gateway JWT验证

时间:2019-12-11 08:18:57

标签: express express-gateway

我想验证存储在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']

1 个答案:

答案 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-jwthttps://www.npmjs.com/package/passport-jwt#writing-a-custom-extractor-function