Pergunta

Estou rodando o Kohana 3 e estou tendo dificuldades para entender o módulo Auth, ou mesmo se é disso que preciso.Basicamente, quero criar um site de perfil de usuário básico com proteção básica de nome de usuário/senha.

Como faço para pegar meus controladores existentes...

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

...e usá-los com algum tipo de sistema de autenticação

Foi útil?

Solução

Para Kohana 3 você vai querer fazer seu check-in before e não __construct como JIStone sugere.

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

Simples o suficiente para entender.Você pode colocar isso em um controlador e ter todos os controladores que precisam de autenticação para estender isso.

Outras dicas

Se você exigir que um usuário seja registrado em todas as páginas do controlador, você pode marcar seu __construct() declaração:

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');
    }
}

Este é o código que usamos, mas é Kohana 2, não 3, então você precisará ajustar um pouco para seus propósitos.

Forneci um link para um breve passo a passo para a instalação e uso básico do Módulo de autenticação em Kohana 3

Depois de ter seu processo de autenticação funcionando, você pode proteger determinados controladores verificando um usuário conectado e uma função de autenticação adequada em seu método before() ou criando um controlador base para todos os seus controladores que precisarão dessa verificação.Se o usuário não estiver logado, redirecione-o para a página de login; se ele não tiver o nível de acesso (ou função) adequado, você poderá mostrar a ele uma página "Acesso negado".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top