我现在正在试用新的strapi v4 (4.0.0)社区版。我有一个自定义控制器,它查询当前用户,并(在将来)获取相关对象。
在使用strapi v3执行此操作时,我使用内置的sanititzeEntitiy -助手函数从用户实例中删除敏感字段。然而,在v4中,这个函数似乎不再存在了,我想不出如何实现它。
有人能帮我吗?到目前为止我的代码是:
module.exports = {
currentUser: async(ctx, next) => {
let user = ctx.state.user;
// TODO: sanitize this
}
}在v3中,我刚刚完成了return sanitizeEntity(user);,这将产生预期的效果。我只是不知道如何在v4中做到这一点,而且在文档中也找不到与此相关的任何内容。
发布于 2022-02-07 18:57:20
所以我同时在strapi社区论坛上发布了这个问题。一个名为JustJerem的用户给了我一个问题的答案,这个问题看起来是这样的:
**const { sanitizeEntity } = require("strapi-utils/lib");**
module.exports = (plugin) => {
plugin.controllers.user.deleteMe = async (ctx) => {
const entity = await strapi.entityService.delete('plugin::users-permissions.user', user.id)
var result = **sanitizeEntity(entity, { model: strapi.getModel('plugin::users-permissions.user') })**
return result
};
//...
};在strapi论坛上,可以找到最初的答案:
https://forum.strapi.io/t/v4-0-0-sanitize-user-data/13326/4?u=derelektrischemoench
这个解决方案的所有学分都在strapi板上给JustJerem。这样做对我很有帮助。希望这也能帮到别人。
你好,德莱克崔克
https://stackoverflow.com/questions/70249508
复制相似问题