在express gateway中运行自定义函数

在express gateway中运行自定义函数,express,express-gateway,Express,Express Gateway,我在gateway.config.yml(Express gateway api)中有此配置: 一切正常,但我希望客户端对发送的令牌进行编码/加密,以确保即使本地存储上有令牌存储,也没有人可以使用它,因为它需要客户端签名 唯一的问题是,在Express Gateway jwt策略尝试验证令牌之前,如何运行代码来解码/解密令牌 因为express gateway可以像任何其他express应用程序一样使用中间件,所以我认为这是可能的,但不知道如何做到这一点 我创建了此策略,这将对我有所帮助,但如何

我在gateway.config.yml(Express gateway api)中有此配置:

一切正常,但我希望客户端对发送的令牌进行编码/加密,以确保即使本地存储上有令牌存储,也没有人可以使用它,因为它需要客户端签名

唯一的问题是,在Express Gateway jwt策略尝试验证令牌之前,如何运行代码来解码/解密令牌

因为express gateway可以像任何其他express应用程序一样使用中间件,所以我认为这是可能的,但不知道如何做到这一点

我创建了此策略,这将对我有所帮助,但如何将其与express gateway api集成:

 - bo
    policies:
      - jwt:
        - action:
            secretOrPublicKeyFile: './key.pem'
            checkCredentialExistence: false
const cryptojs = require("crypto-js");
module.exports = {
    name: 'decode',
    policy: (actionParams) => {
      return (req, res, next) => {
        const tokenHeader = req.header('Authorization');
        const tokenArray = tokenHeader.split(' ');
        const tokenCifer = tokenArray[1];
        const bytes  = cryptojs.AES.decrypt(tokenCifer, 'superkeyperm'); //CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
        var token = bytes.toString(cryptojs.enc.Utf8);
        req.headers.authorization = `Bearer ${token}`;
        next() // calling next policy
      };
    }
};

我认为您感兴趣的是编写一个插件,它只不过是一个附加中间件和条件的集合,您可以在ExpressGateway中堆叠,在这里您可以放置自己的逻辑


查看位于

@Vicenzo的文档谢谢你的建议,我正在努力解决这个问题,我创建了一个策略来帮助我在这种情况下,检查我的代码是否用它更新,但我不知道如何将它与网关API集成