You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi v4如何替代v3的sanitizeEntity实现用户敏感字段过滤

Strapi v4 已将原sanitizeEntity功能重构至@strapi/utils包的sanitize模块下,你可以按以下方式实现同等的敏感字段清洗效果:

完整实现代码

const { sanitize } = require('@strapi/utils');

module.exports = {
  currentUser: async(ctx, next) => {
    let user = ctx.state.user;
    // 获取用户模型的Schema定义
    const userSchema = strapi.contentTypes['plugin::users-permissions.user'];
    // 清洗用户数据,移除敏感字段
    const sanitizedUser = await sanitize.contentAPI.output(user, { schema: userSchema });
    return sanitizedUser;
  }
}

注意事项

  • sanitize.contentAPI.output 是异步方法,必须添加await调用,否则会返回Promise对象而非清洗后的数据
  • 该方法默认会按照用户模型的字段权限配置,自动过滤密码、重置令牌、角色权限等敏感字段,行为逻辑与v3版本的sanitizeEntity完全一致
  • 如果需要自定义过滤规则,可在第二个参数中添加includeFields/excludeFields配置,手动指定需要保留或移除的字段

内容的提问来源于stack exchange,提问作者derelektrischemoench

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:45:01