【问题标题】:How to hide pages from certain users in angular and php如何在 Angular 和 php 中隐藏某些用户的页面
【发布时间】:2012-12-15 02:30:12
【问题描述】:

我正在创建一个网站,用户可以在其中创建一些个人资料。 所有配置文件都必须打开,仅供创建者选择的用户查看。其他人不会看到他们。

使用 Angular,您可以使用路由轻松创建页面,因此对于每个新页面,您将拥有如下内容:

www.example.com/profiles/profile/1
www.example.com/profiles/profile/2
www.example.com/profiles/profile/3
etc.

但是,比如说,您拥有个人资料 1、2、3,您可以轻松查看 profile/4、profile/5 等...

您如何实现一个禁止查看或允许查看的数据少于访问权限用户的系统?

谢谢。

【问题讨论】:

  • 我假设您有某种用户管理系统?列出他们可以在数据库中访问的内容并检查每个个人资料页面。

标签: php mysql angularjs


【解决方案1】:

如前所述,答案应该在服务器端。身份验证应始终在服务器端..

在您的情况下,您只需要像迄今为止所做的那样查询数据库一次,实际上正确的术语只是向您的 api 发送一个 http 请求(因为 http 请求正在执行 db 查询)。该 http 请求应首先检查您获得的权限类型并返回适当的数据(有限的用户列表、特定用户或您无权访问该特定内容的错误)。

我希望它对你有意义。

【讨论】:

    【解决方案2】:

    如果使用数据库,您可以添加一列AccessRights

    0 = 基本

    1 = 配置文件 1

    2 = 配置文件 1/2

    AccessRights 的不同整数可以让你访问不同的东西。

    并阻止具有访问权限 1 的人访问访问权限 3 的材料

     if ($Accessrights < 3)
    {
     die("You Cannot View This");
    }
    

    您可以为$Accessrights 或其他东西分配一个变量。

    希望这是您正在寻找的东西

    【讨论】:

    • 那么我必须在用户访问的每个页面上查询数据库吗?那岂不是太足智多谋了?
    【解决方案3】:

    那么我必须在用户访问的每个页面上查询数据库吗?会不会太机智了?

    我想要创建的访问系统与 facebook 类似。 您可以看到您的页面和您的朋友页面,但您看不到私人页面。 您可以编辑您的个人资料,但不能编辑其他人的个人资料。

    这是正确的方法吗?

    【讨论】:

      【解决方案4】:

      您可以检查用户是否正在查看他自己的记录或是否允许他查看任何记录

      $iUserType = USER_TYPE_ADMIN; // 持续的 $iUserId = 5; // 这个和用户类型可以在登录后存储在会话中

      $iViewProfileId = 5; // 这应该来自请求参数

      if (($iViewProfileId != $iUserId) AND     (USER_TYPE_ADMIN != $iUserType)) {
          // error, user is not permitted to view the record
      }
      

      【讨论】:

        猜你喜欢
        • 2013-02-23
        • 2021-12-01
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        • 1970-01-01
        • 2014-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多