【发布时间】:2011-12-09 22:19:56
【问题描述】:
我安装了 tank auth 以节省我创建身份验证脚本的时间。
当我使用 HMVC 时,tank auth 有它自己的模块 (modules/auth)。
如何使用登录脚本保护我的其他模块(/admin、/members 等)??
根据我的阅读,我需要执行以下操作:
modules::run('auth/is_logged_in');
我的身份验证控制器如下所示:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Auth extends MX_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
//$this->load->library('security');
$this->load->library('tank_auth');
$this->lang->load('tank_auth');
}
function index()
{
if ($message = $this->session->flashdata('message')) {
//$this->load->view('auth/auth/general_message', array('message' => $message));
$main_content = 'auth/auth/general_message';
$this->load->view('includes/template', array('message' => $message, 'main_content' =>$main_content));
} else {
redirect('auth/login/');
}
}
/**
* Login user on the site
*
* @return void
*/
function login()
{
if ($this->tank_auth->is_logged_in()) { // logged in
redirect('admin');
} elseif ($this->tank_auth->is_logged_in(FALSE)) { // logged in, not activated
redirect('auth/send_again/');........
我想用登录脚本保护的控制器/模块:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Admin extends MX_Controller {
public function __construct(){
parent::__construct();
modules::run('auth/auth/login');
}
以上似乎不起作用?我错过了什么?
【问题讨论】:
-
我认为您需要检查
elseif ($this->tank_auth->is_logged_in(FALSE))的输出。如果这不评估为真,您的用户将不会被重定向(即使登录检查也失败)并且不会采取任何操作,将用户留在管理页面上。 -
感谢 olaf,有没有一种方法可以测试我尝试运行的模块:: 是否找到它的目标函数??
标签: php codeigniter hmvc tankauth