我正在创建一个网站,用户可以在其中创建一些个人资料。 必须打开所有配置文件才能仅查看创建者选择的用户。其他人不会看到他们。
使用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等...
如何实施一个禁止查看或允许查看的数据少于访问权限用户的系统?
谢谢。
答案 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
}