如何验证“超级用户”以代表用户访问信息?

时间:2014-02-18 21:39:06

标签: php ajax security rest authentication

我创建了一个REST Web服务,该服务使用访问令牌来允许经过身份验证/授权的用户访问“私有”数据。我希望我的网站使用相同的API代表用户通过AJAX访问数据,但我不清楚这样做是否安全。这是一个例子:虽然不允许用户删除自己的帐户,但我(网站)可以。也就是说,如果作为网站进行身份验证,我应该可以通过向相应的URL发送DELETE请求来删除用户。麻烦的是,发送一个无所不能的“上帝令牌”以及请求是行不通的,因为令牌对最终用户是可见的。那就是说,实现这个目标的标准是什么?单独的API?饼干?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在用户数据库中添加“超级用户”或“user_level”列,并在登录时将其添加到会话中。

然后你可以在执行删除之前检查:

if ( 
     ($_SESSION['current_user_id'] === $id_to_be_deleted)
     || ($_SESSION['superuser'] === 1)
   )
                                    ^ for example...  
{
  // delete

(加载新行和括号以试图明确......)