StrapiJs-用户身份验证和用户配置文件

时间:2019-08-16 16:24:12

标签: social-networking strapi

1)我在trapijs中建立了个人资料信息内容类型。添加了用户关系。个人资料具有并属于一个用户。”就像一个简单的社交媒体。

2)我添加了几个用户/个人资料信息。为特殊用户连接了它。

3)与邮递员一起测试过api。身份验证有效,我可以看到配置文件信息。但是问题是,经过身份验证的用户可以访问其他用户的个人资料信息。

如何限制一个用户仅查看相关个人资料? 谢谢

2 个答案:

答案 0 :(得分:0)

好的,因此对于您的用例,您必须将GET /users/限制为所有用户。 这样一来,没有人可以访问其他数据用户。

但是您可以访问GET /users/me/路线。并且您将能够访问Auth User数据。

答案 1 :(得分:0)

您可以轻松创建自定义策略,该策略将比较经过身份验证的user.id和请求的配置文件用户ID,并且仅在它们相同时才进行响应-在此处了解有关创建策略的信息-Strapi Policy Help

    module.exports = async (ctx, next) => {
  const { body } = ctx.request
      if (ctx.state.user.id == ctx.request.query.userid || ctx.state.user.id == body.userid) {
        return await next();
      } 
      ctx.unauthorized(`You're not allowed to perform this action!`);
    };

请注意,您必须在概要文件模型中插入userid字段。我必须使用逻辑OR,因为我有不同类型的请求-仅取决于您的请求。