如何在全局中间件中访问ctx.state.user [strapi v4.14]

问题描述 投票:0回答:1

我编辑了一个全局中间件,它将作者数据获取到每个操作以进行一些验证。但我无法访问该中间件中的 ctx.state.user。

module.exports = (config, { strapi }) => {
    return async (ctx, next) => {
        console.log(ctx.state.user);

        return next();
    };
};

我什至尝试在某些生命周期文件中访问它,但这是同样的事情。

当我

console.log(ctx.state)
时,它返回
{}
一个空对象,因此我无法访问ctx.state.user

文档对我没有帮助

预先感谢您的帮助

javascript strapi koa nuxt-strapi gatsby-strapi
1个回答
0
投票

答案来自 Jwt 代币。

const { id } = await strapi.plugins['users-permissions'].services.jwt.getToken(ctx);
const user = await strapi.entityService.findOne('plugin::users-permissions.user', id, {
  populate: '*',
});
© www.soinside.com 2019 - 2024. All rights reserved.