我正在使用PHP编写Web应用程序。我想为此使用MVC模式,并决定使用CodeIgniter。我的应用程序将有一些页面需要身份验证,而有些页面则不需要。我想以非常通用的方式设计它,这样就不会有代码重复。任何人都可以为此指出一些好的“设计/类结构”吗?
答案 0 :(得分:10)
“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+框架一起使用。
我知道现在为时已晚,但我希望其他人会觉得有用。的干杯!强>