我做了很多研究,并没有找到令人满意的答案。
我应该如何使用坦克auth等CodeIgniter库?我找到了一些方法,但它们似乎都显得乏善可陈:
第一个选项似乎是最好的,但似乎很难避免复制大量代码(如果我想要一个登录表单会发生什么,但又不想重定向到/ auth / login?)< / p>
第二个选项有同样的问题,但更糟。每次我想使用login_form视图时,我都需要包含tank auth控制器的登录功能的逻辑,对吗?
最后看起来真的很hacky,对我来说似乎是反MVC,但也许我错了。
答案 0 :(得分:1)
查看http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY
伪代码(参见链接 - 非常好的例子):
应用/配置/ config.php中
$autoload = array('tank_auth');
// add this to the bottom of config.php as per the directions in the link
function __autoload($class)
{
if(strpos($class, 'CI_') !== 0)
{
@include_once( APPPATH . 'core/'. $class . EXT );
}
}
应用/核心/ Private_Controller.php
class Private_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
if(! $this->tank_auth->is_logged_in()){
redirect('auth/login');
}
}
}
控制器
class PrivateStuff extends Private_Controller {
function index() {
echo "you are logged in";
}
}
-
http://example.com/index.php/privatestuff/
>you are logged in
就视图而言,您可以使用lib随附的那些,自定义它们或创建自己的视图 - 由您决定。