代码之家  ›  专栏  ›  技术社区  ›  Neil Middleton

将数据保护到Rails中的特定域

  •  3
  • Neil Middleton  · 技术社区  · 15 年前

    我们有一个多租户的应用程序(很多用户都访问自己的数据,类似于basecamp)。

    问题是,Rails中确保用户只能查看自己的帐户数据的最简单和最简单的方法是什么?这是一个去检查每个查询的案例吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jesse Wolgamott    15 年前

    实现这一目标的方法:

    • 使用子域,因此其customer.domain.com….然后,在应用程序控制器中,有一个before过滤器,该过滤器将查找子域并设置一个@customer变量。
    • 总是从客户那里获取数据,所以您会说@customer.quotes.find(params[:id])…而不是引号。查找(参数[:id])

    所以,是的,在多租户数据库中,您需要检查每个查询。

        2
  •  0
  •   VP.    15 年前

    您可以使用子域,但也可以使用当前用户,这取决于您的身份验证方法。解释。

    我登录了,现在有了我的当前用户。一个用户有许多帖子。所以现在,如果我想找到我的所有帖子,我应该做current_user.posts.all或current_user.posts.find()。

    不要依赖于cookies或“隐藏路径”,因为它不起作用。编写测试以检查您是否未破坏授权架构。