php-如何管理用户权限?

php-如何管理用户权限?,php,permissions,Php,Permissions,如何管理用户权限? 我需要一种快速的方法来管理用户登录时的状态(访问页面还是不访问页面?您可能需要一个简单的解决方案,但这不是一个简单的问题 在一端,您可以对每个用户的每个页面拥有单独的权限。这给了你很大的灵活性,但这将是一场管理噩梦。在另一端,您可以允许用户访问或不访问整个站点。不是很灵活,但很容易管理和编码 第一种是细粒度的。第二种是粗粒度的。寻找授权方案的关键在于定义一个细粒度或粗粒度的授权方案,以平衡灵活性和管理/开发 您可能感兴趣的两个常见方案: 在数据库中为每个用户指定一个类型。当他

如何管理用户权限?
我需要一种快速的方法来管理用户登录时的状态(访问页面还是不访问页面?

您可能需要一个简单的解决方案,但这不是一个简单的问题

在一端,您可以对每个用户的每个页面拥有单独的权限。这给了你很大的灵活性,但这将是一场管理噩梦。在另一端,您可以允许用户访问或不访问整个站点。不是很灵活,但很容易管理和编码

第一种是细粒度的。第二种是粗粒度的。寻找授权方案的关键在于定义一个细粒度或粗粒度的授权方案,以平衡灵活性和管理/开发

您可能感兴趣的两个常见方案:

  • 在数据库中为每个用户指定一个类型。当他们登录时,在会话中输入该类型(如用户、管理员、主持人),并在每个相关页面上检查
  • 给每个用户一个或多个角色(比如说,有人可以既是管理员又是版主,或者只是其中一个,或者两者都不是)。这需要一个单独的表(users和userroles),并可能在会话中放置一个数组来指示角色,但比(1)更灵活。基于角色的授权非常常见
  • 这两种方法有很多不同之处,也有同样多的选择。各种方案可以结合使用


    这就是为什么通用授权库不能满足我的要求,因为它们有相反的需求,即足够广泛以覆盖大量用例,并且足够粗粒度以对单个用户有用。

    您可能需要一个简单的解决方案,但这不是一个简单的问题

    在一端,您可以对每个用户的每个页面拥有单独的权限。这给了你很大的灵活性,但这将是一场管理噩梦。在另一端,您可以允许用户访问或不访问整个站点。不是很灵活,但很容易管理和编码

    第一种是细粒度的。第二种是粗粒度的。寻找授权方案的关键在于定义一个细粒度或粗粒度的授权方案,以平衡灵活性和管理/开发

    您可能感兴趣的两个常见方案:

  • 在数据库中为每个用户指定一个类型。当他们登录时,在会话中输入该类型(如用户、管理员、主持人),并在每个相关页面上检查
  • 给每个用户一个或多个角色(比如说,有人可以既是管理员又是版主,或者只是其中一个,或者两者都不是)。这需要一个单独的表(users和userroles),并可能在会话中放置一个数组来指示角色,但比(1)更灵活。基于角色的授权非常常见
  • 这两种方法有很多不同之处,也有同样多的选择。各种方案可以结合使用


    这就是为什么通用授权库不能满足我的要求,因为它们有相反的需求,即足够广泛以覆盖大量用例,并且足够粗粒度以对单个用户有用。

    实现ACL系统

    • 一组用户组成一个角色
    • 一个用户可能属于多个角色
    • 特权是在应用程序中定义的-例如,createuser,post-article。等
    • 通过管理界面向角色添加权限
    • 加载页面之前,请检查ACL。如果用户属于具有请求页面所需权限的角色,请允许用户继续。否则重定向到拒绝访问页面
    • 使用第三方库(如

    选择一个你喜欢使用的图书馆。但基本思想保持不变。

    实现ACL系统

    • 一组用户组成一个角色
    • 一个用户可能属于多个角色
    • 特权是在应用程序中定义的-例如,createuser,post-article。等
    • 通过管理界面向角色添加权限
    • 加载页面之前,请检查ACL。如果用户属于具有请求页面所需权限的角色,请允许用户继续。否则重定向到拒绝访问页面
    • 使用第三方库(如

    选择一个你喜欢使用的图书馆。但基本思想保持不变。

    当用户登录时,您存储哪些信息?当用户登录时,您存储哪些信息?