egg.js 中间件不起作用?

发布于 2022-09-11 16:36:41 字数 831 浏览 20 评论 0

我再middleware中编写认证接口

authenticate.js
module.exports = options => {
    return async function auth(ctx, next) {
        console.log('99999999999999999')
        let { app } = this
        const { redis } = app;
        let sign = ctx.get('x-sign');
        let user_id = ctx.get('x-user-id');

        if (!user_id) {
            ctx.throw(412, 'invalid user id');
        }
        // if (!sign) {
        //     ctx.throw(412, 'invalid sign');
        // }
        let token = await redis.get(user_id);
        if (!token) {
            ctx.throw(412, 'invalid user');
        }
        await next();
        console.log('9999999999999')
    };
};

在config.default.js中加载中间件

config.middleware = ['authenticate']

用psotman请求接口,根本没有走这个中间件,是什么原因?

我禁用了csrf

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苍暮颜 2022-09-18 16:36:41

特意注册账号来感谢你一下,调试了好久,看到你的才恍然大悟,多谢老铁~~

乖乖哒 2022-09-18 16:36:41

找到问题了,我在config文件中加入了config.local.js配置文件,在这里面加入middleware就可以,但是我在官方文档上看到config.default.js不管如何都会加载的,为什么在这里面配置就不行?

找到问题了,因为在config.local.js中也配置了middleware,它会覆盖config.default.js中的middleware配置,所以config.defalut.js中的配置没有起到作用,配置文件的加载规则是,其他环境的配置文件会覆盖config.default.js中相同的配置项

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文