Создание профилей пользователей с Kohana - PullRequest
2 голосов
/ 22 мая 2011

Я использую Kohana 3 и с трудом разбираюсь в модуле Auth, или даже если это то, что мне нужно.В основном я хочу создать базовый сайт профиля пользователя с базовой защитой имени пользователя и пароля.

Как мне взять мои существующие контроллеры ...

class Controller_Profile extends Controller
{
    function action_index( $user_id )
    {
        // User should already be authenticated by here I think
    }
}

... и использовать их с какой-то системой аутентификации

Ответы [ 3 ]

6 голосов
/ 22 мая 2011

Для Kohana 3 вы захотите пройти проверку before, а не __construct, как предлагает JIStone.

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 голос
/ 23 мая 2011

Я предоставил ссылку на краткое руководство по установке и базовому использованию модуля Auth в Kohana 3

После того, как ваш процесс Auth заработал, вы можете защитить определенные контроллерыпроверяя зарегистрированного пользователя и соответствующую роль аутентификации в вашем методе before (), или создайте базовый контроллер для всех ваших контроллеров, которые будут нуждаться в этой проверке.Если пользователь не вошел в систему, перенаправьте его на страницу входа, если у него нет надлежащего уровня доступа (или роли), тогда вы можете показать ему страницу «Отказано в доступе».

1 голос
/ 22 мая 2011

Если вам потребуется регистрация пользователя на всех страницах контроллера, вы можете поставить галочку в своем __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, поэтому вам придется немного подстроиться под ваши цели.

...