Вопрос

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

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

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

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

Это было полезно?

Решение

Для 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('');
    }
}

Достаточно просто для понимания.Вы можете поместить это в контроллер и иметь все контроллеры, которым требуется аутентификация, чтобы расширить ее.

Другие советы

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

Я предоставил ссылку на короткий прохождение для установки и базового использования Модуль авторизации в Кохане 3

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top