如何在angular和php中隐藏某些用户的页面

时间:2012-12-15 02:30:12

标签: php mysql angularjs

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

使用angular,您可以使用路径轻松创建页面,因此对于每个新页面,您将具有以下内容:

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

但是,比方说,你拥有自己的个人资料1,2,3,你可以轻松查看个人资料/ 4,个人资料/ 5等...

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

谢谢。

4 个答案:

答案 0 :(得分:1)

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

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

我希望你有意义。

答案 1 :(得分:0)

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

0 =基本

1 =个人资料1

2 =个人资料1/2

AccessRights的不同整数将允许您访问不同的内容。

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

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

您可以为$Accessrights或其他内容分配变量。

希望这是你要找的东西

答案 2 :(得分:0)

那么我是否必须在用户访问的每个页面上查询数据库?难道这不会太有资源吗?

我想要创建的访问系统与facebook完全相同。 您可以看到自己的页面和朋友页面,但无法看到私人页面。 您可以编辑您的个人资料,但不能编辑其他人的个人资料。

这是正确的方法吗?

答案 3 :(得分:0)

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

$ 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
}