【问题标题】:Check user Group Level via session or database?通过会话或数据库检查用户组级别?
【发布时间】:2011-05-30 14:09:59
【问题描述】:

客户或管理员登录后,他们的 member_id 将存储在会话中 ($_SESSION['member_id'])

有多个组级别,最好这样存储在会话中:

$_SESSION['group_id'] = 2;

还是从数据库中检查组级别?

SELECT group_id FROM users where member_id = .  $_SESSION['member_id'];

我已经为前端编写了用户登录类,后端使用相同的类有什么问题吗?

【问题讨论】:

    标签: php security authentication login


    【解决方案1】:

    如果您将 member_id 存储在会话变量中,为什么没有 group_id ?会话变量允许您在请求之间保持数据的持久性,这似乎正是您所需要的。

    虽然有些人确实建议将会话数据保持在最低限度,即:

     $_SESSION['uid'] = 5;
     $_SESSION['logged_on'] = true;
    

    我不会考虑将 group_id 作为会话变量的错误使用,因为在您的情况下 member_id 取决于 group_id 来做任何事情。

    【讨论】:

      【解决方案2】:

      两者之间的主要区别在于,在第一种情况下,对用户组的更改可能仅在下一个会话中可见(例如,用户已登录,并且管理员更改了组),而在另一种情况下,他们将立即生效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-11
        • 1970-01-01
        • 2013-03-30
        • 1970-01-01
        • 2015-08-03
        • 2014-11-08
        • 1970-01-01
        相关资源
        最近更新 更多