我正在运行Kohana 3,并且很难理解Auth模块,或者即使它是我需要的。基本上我想创建一个基本的用户配置文件站点,具有基本的用户名/密码保护。
如何使用现有的控制器......
class Controller_Profile extends Controller
{
function action_index( $user_id )
{
// User should already be authenticated by here I think
}
}
...并将它们与某种身份验证系统一起使用
答案 0 :(得分:6)
对于Kohana 3,您需要在before
办理入住手续,而不是像JIStone建议的那样__construct
。
public function before()
{
parent::before();
// This automatically checks for an auto login cookie (thanks kemo).
if ( ! Auth::instance()->logged_in())
{
// Redirect to a login page (or somewhere else).
$this->request->redirect('');
}
}
简单易懂。您可以将其放入控制器并让所有需要身份验证的控制器进行扩展。
答案 1 :(得分:1)
如果您要求用户注册控制器上的所有页面,您可以检查__construct()
声明:
function __construct()
{
//Check roles for Access!!!!
parent::__construct();
$this->load_user();
if( ! $this->is_registered )
{
if(request::is_ajax())
die('This ajax call cannot be completed due to permission issues.');
// this will redirect from the login page back to this page
$this->session->set('requested_url', url::current());
url::redirect('user/login');
}
}
这是我们使用的代码,但它是Kohana 2,而不是3,因此您需要根据自己的需要调整一下。
答案 2 :(得分:1)
我提供了一个指向Auth Module in Kohana 3
的安装和基本用法的简短演练的链接一旦您的Auth进程正常工作,您可以通过在before()方法中检查登录用户和正确的身份验证角色来保护某些控制器,或者为需要此检查的所有控制器创建一个基本控制器。如果用户未登录,则将其重定向到登录页面,如果他们没有正确的访问级别(或角色),则可以向他们显示“拒绝访问”页面。