0

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

使用 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

4 回答 4

1

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

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

我希望这对你有意义。

于 2013-11-21T09:01:41.947 回答
0

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

0 = 基本

1 = 配置文件 1

2 = 轮廓 1/2

ETC

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

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

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

由您决定为什么分配一个变量$Accessrights

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

于 2012-12-15T02:34:04.193 回答
0

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

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

这是正确的方法吗?

于 2012-12-15T03:14:44.903 回答
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
}
于 2012-12-15T06:36:29.737 回答