13

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

4

7 回答 7

10

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

  • 验证用户,即。检查用户是否登录
  • 登录即。设置会话变量或其他东西
  • 注销你

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

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

于 2009-01-19T18:12:14.500 回答
10

“Ion Auth”精简、编程良好、使用广泛并且得到积极维护。

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

于 2010-07-07T12:32:44.783 回答
3

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

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

于 2009-01-19T18:01:12.230 回答
0

我最近也在研究同样的事情,我发现了一个名为Kohana的 CodeIgniter 分支,其中包含一个不错的身份验证模块。如果您设置在 CI 上,也许将 Kohana 的身份验证模块向后调整为 CI 会节省您一些时间?如果您刚刚开始您的项目并且可以使用 PHP5,请考虑切换;它们是非常相似的框架。

于 2009-01-25T02:44:06.930 回答
0

可能您可以将 CL_AUTH 库用于 CI。我用过它,效果很好。你可以在这里找到它http://www.jasonashdown.co.uk/cl_auth_doc/

于 2009-02-09T09:06:14.160 回答
0

访问GitHub并搜索 Codeigniter Auth 或 Authentication,或查看CodeIgniter Wiki,您会发现许多具有不同功能的库.. 探索它们并选择您需要的!但要小心,很多都是针对 CI 2 的,而且你必须首先ucfirst 类与 CI 3 一起使用,否则它们根本不起作用。

于 2015-05-17T18:29:14.823 回答
0

Use flexi auth a modified version of the popular Ion Auth library. It's more advanced and do all the job out-of-the-box.

flexi auth is a free open source user authentication/login library for use with the CodeIgniter 2.0+ framework.

I know it's too late but I hope someone else will find it helpful. Cheers!

于 2017-10-23T16:48:17.850 回答