0
我已經安裝了坦克認證,以節省我創建認證腳本的時間。如何在Codeigniter HMVC中調用模塊功能?坦克認證
由於我使用HMVC,坦克認證有它自己的模塊(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輸出($這個 - > tank_auth-> is_logged_in(FALSE))'。如果這不算真,你的用戶將不會被重定向(即使登錄檢查也失敗了),並且不會採取任何行動,將用戶留在管理頁面上。 – Olaf
感謝olaf,有沒有一種方法可以測試我嘗試運行的模塊::是否發現它的目標函數? – hairynuggets