【问题标题】:Strapi backend and query restrictionsStrapi 后端和查询限制
【发布时间】:2019-02-19 05:43:07
【问题描述】:

我目前正在使用Strapi作为网店的后端,并且面临这样的问题:默认情况下,Strapi在GET查询中返回所有数据,例如http://host.com/users将返回所有用户的字段,包括privateMessagesorders , favoritedProducts,但这些数据应该是私有的。如何限制这一点,让每个用户只能获得自己的私人数据?

Strapi 也有奇怪的权限设置,如果我允许更新 User 模型,那基本上意味着其他用户可以执行 PUT 查询和编辑其他用户的数据,但是如果我限制更新 User 模型,那么用户无法更新自己的数据

【问题讨论】:

    标签: backend strapi


    【解决方案1】:

    为此,您必须根据ctx.state.user 中的信息添加自定义逻辑

    这里有文档https://strapi.io/documentation/3.x.x/guides/authentication.html#user-object-in-strapi-context

    您可以创建一个策略并将其应用到您想要的路由或更新您的控制器代码以限制访问。

    【讨论】:

    • 嘿,我正在尝试执行此操作,但遇到了问题。如何获取请求的资源?我可以轻松地从 ctx.state.user 获取用户 ID,但我需要将其与资源所有者进行比较。我想现在我可以做一些愚蠢的事情,比如用 axios 或其他东西发出 http 请求,但我确信有一种方法可以在strapi 中做到这一点。
    • 您必须findOne您要获取的条目(在发送之前)并检查用户关系是否与您登录的用户匹配。如果不匹配,您有发送错误而不是发送数据。或在执行更新之前。
    猜你喜欢
    • 2022-06-28
    • 2023-03-14
    • 1970-01-01
    • 2023-03-03
    • 2012-12-05
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多