使用CodeIgniter进行用户身份验证

时间:2009-01-19 12:55:45

标签: php codeigniter authentication

我正在使用PHP编写Web应用程序。我想为此使用MVC模式,并决定使用CodeIgniter。我的应用程序将有一些页面需要身份验证,而有些页面则不需要。我想以非常通用的方式设计它,这样就不会有代码重复。任何人都可以为此指出一些好的“设计/类结构”吗?

7 个答案:

答案 0 :(得分:10)

“Ion Auth”精简,程序设计良好,使用范围广泛,并得到积极维护。

http://github.com/benedmunds/CodeIgniter-Ion-Auth

答案 1 :(得分:8)

编写一个自定义库,您可以在每个页面视图的代码点火器应用程序中自动加载。它应该具有以下功能:

  • 验证用户即。检查用户是否已登录
  • 登录即可。设置会话变量或其他东西
  • 退出

然后在您的控制器类中,您可以在构造函数中调用身份验证函数,然后根据结果继续正常,或者将它们重定向到具有访问被拒绝消息的登录屏幕。

在代码点火器维基上搜索“身份验证”,并且有许多结果可能有所帮助:http://codeigniter.com/wiki/

答案 2 :(得分:3)

如果“某些页面”指的是某些控制器(视图的网关),那么您可能需要调查控制器继承。使用您自己的默认CodeIgniter控制器扩展它,并在构造函数中进行身份验证检查(检查会话中是否有登录标志或其他内容,如果没有登录,则重定向到登录页面)。然后,需要身份验证的所有控制器都需要扩展新的父控制器。就是这样。

前往CodeIgniter论坛并搜索扩展控制器的一些不同方法。这是一个http://codeigniter.com/forums/viewthread/89768/#452890

答案 3 :(得分:0)

我最近在研究同样的事情,我找到了一个名为Kohana的CodeIgniter分叉,其中包含一个很好的authentication module。如果您使用CI,可能会将Kohana的auth模块向后调整为CI可以节省一些时间吗?如果您刚开始使用项目并且PHP5可以使用,请考虑切换;它们是非常相似的框架。

答案 4 :(得分:0)

可能是您可以使用CL_AUTH库进行CI。我用过它并且效果很好。你可以在http://www.jasonashdown.co.uk/cl_auth_doc/

找到它

答案 5 :(得分:0)

访问GitHub并搜索Codeigniter身份验证或身份验证,或查看CodeIgniter Wiki,您会发现许多具有不同功能的库..探索它们并选择您需要的库!但要小心,很多都是针对CI 2的,你必须ucfirst the classes才能使用CI 3,否则它们根本不起作用。

答案 6 :(得分:0)

使用flexi auth广受欢迎的Ion Auth库的修改版本。它更先进,可以开箱即用。

  

flexi auth是一个免费的开源用户身份验证/登录库,可与CodeIgniter 2.0+框架一起使用。

我知道现在为时已晚,但我希望其他人会觉得有用。的干杯!