首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在express-gateway中运行自定义函数

在express-gateway中运行自定义函数
EN

Stack Overflow用户
提问于 2019-09-26 21:00:23
回答 1查看 201关注 0票数 0

我在gateway.config.yml (Express-Gateway api)中有这样的配置:

代码语言:javascript
复制
 - bo
    policies:
      - jwt:
        - action:
            secretOrPublicKeyFile: './key.pem'
            checkCredentialExistence: false

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

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

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

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

代码语言:javascript
复制
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
      };
    }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-26 21:23:18

我认为你感兴趣的是编写一个插件,它只不过是一个额外的中间件和条件的集合,你可以在Express Gateway中堆叠,在那里你可以放入你自己的逻辑。

https://www.express-gateway.io/docs/plugins/上查看文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58117369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档