我正在嘗試使用codeigniter構建Web應用程序。我已將Ion Auth安裝爲我的身份驗證模型。在另一個控制器中對codeigniter使用離子認證認證
默認Auth.php控制器對用戶進行認證,並建立會話。
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Auth extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('ion_auth');
$this->load->library('session');
$this->load->library('form_validation');
$this->load->helper('url');
$data['title']="Login Page";
$this->load->view("view_site_header",$data);
// Load MongoDB library instead of native db driver if required
$this->config->item('use_mongodb', 'ion_auth') ?
$this->load->library('mongo_db') :
$this->load->database();
$this->form_validation->set_error_delimiters($this->config->item('error_start_delimiter', 'ion_auth'), $this->config->item('error_end_delimiter', 'ion_auth'));
}
//redirect if needed, otherwise display the user list
function index()
{
// if not logged in - go to home page
if (!$this->ion_auth->logged_in())
{
//redirect them to the login page
redirect('auth/login', 'refresh');
}
// if user is an admin go to this page
elseif ($this->ion_auth->is_admin())
{
// if an admin, go to admin area
//set the flash data error message if there is one
$this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');
//list the users
$this->data['users'] = $this->ion_auth->users()->result();
foreach ($this->data['users'] as $k => $user)
{
$this->data['users'][$k]->groups = $this->ion_auth->get_users_groups($user->id)->result();
}
$this->_render_page('auth/view_users', $this->data);
} else
{
//redirect them to the default home page
$data['title']="IMS Home Page";
$this->load->view("generic/view_site_header",$data);
$this->load->view("generic/view_generic_nav");
$this->load->view("generic/view_content_generic");
$this->load->view("view_site_footer");
}
}
我想要做的是爲我的應用程序邏輯創建一個新的控制器,並讓身份驗證控制器進行身份驗證。
我如何可以使用身份驗證控制,以確保我的用戶的訪問我的新控制器時,在登錄?此外,我需要將激情信息提供給新控制器。
我的新的控制器,master_data具有下面的代碼:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Masterdata extends CI_Controller{
function index()
{
$data['title']="Master Data Home Page";
$this->load->view("master_data/view_master_data_header",$data);
$this->load->view("master_data/view_master_data_nav");
$this->load->view("master_data/view_content_master_data_home");
$this->load->view("master_data/view_master_data_footer");
echo $this->session->userdata('username');
}
}
顯然echo $this->session->userdata('username');
不工作作爲新的控制器沒有在auth控制器會話的知識。
任何幫助表示讚賞一如既往。
此致
對於簡單的安全控制器來說,這是一個比通過MY_Controller進行擴展更簡單的方法。 – jaredstenquist 2013-03-21 03:08:25