Php Codeigniter-身份验证库还是自定义控制器?

Php Codeigniter-身份验证库还是自定义控制器?,php,codeigniter,authentication,Php,Codeigniter,Authentication,我想知道对我来说什么是最好的。我正在使用CodeIgniter构建一个站点,它有两个主要部分: 公共部分对每个人都有效 仅限注册用户使用的专用 在公共区域(一个控制器)的每一页中,我想放置一个登录表单和一个注册链接,如果用户已登录,则必须将其重定向到私人区域,或者显示指向该区域的链接 现在我有两个选择: 用户控制器是我想到的第一件事,但在网站的每个页面中,我都需要控制用户是否登录,这是不可能的,或者是非常糟糕的,因为我正在使用另一个控制器 因此,我开始研究一个库,但我不确定如何实现它(例如,

我想知道对我来说什么是最好的。我正在使用CodeIgniter构建一个站点,它有两个主要部分:

  • 公共部分对每个人都有效
  • 仅限注册用户使用的专用
在公共区域(一个控制器)的每一页中,我想放置一个登录表单和一个注册链接,如果用户已登录,则必须将其重定向到私人区域,或者显示指向该区域的链接

现在我有两个选择:

  • 用户控制器是我想到的第一件事,但在网站的每个页面中,我都需要控制用户是否登录,这是不可能的,或者是非常糟糕的,因为我正在使用另一个控制器
  • 因此,我开始研究一个库,但我不确定如何实现它(例如,表单验证应该由控制器或库本身来实现?既然我没有模型,那么数据库连接呢?)
  • 你认为什么是最好的?为什么?你将如何实施它


    (是的,我喜欢改头换面,不使用现有库,主要是因为我想学习如何操作)

    表单验证和查询作业应该由控制器本身执行。该库就像一个工具,不需要在其中实现这些东西,但作为一种需要,您可以使用其中的查询来检查一些数据,但最好在控制器中工作

    设置日志标志的目的是:

  • 用户登录后,为其创建会话以显示访问权限
  • 每次在会话中检查私有部分
  • 你的超级控制器是你的公共控制器,只要你只做分配,不检查

    任何你想公开的东西都可以扩展超级控制器


    任何你想要的私有扩展私有控制器

    如何检查用户是否登录到
    用户
    的构造函数中?但是由于我使用不同的控制器来显示站点的页面,我不能调用另一个控制器的方法,或者在不破坏mvc模型的情况下用构造函数加载它。CI是一个糟糕的框架学习如何正确地完成这项工作,因为它是静态的,因此无法灵活地扩展和重用,尤其是在控制器方面。理想情况下,我会用访问检查装饰需要它的控制器,并在路由中定义哪些控制器需要访问检查。然后,如果控制器需要,应用程序控制器将执行访问检查。我可以扩展类ci_controller来执行此操作…好主意,这样您可以在以下情况下阻止节/部分视图或小部件(Modules::run('auth/_check_permissions',$user_id))
    Super Controller
                =>assign user data,settings,configs etc
          |-----private controller extends super controller
                =>check user credentials
          |-----admin controller extends super controller
                =>check user && admin credentials