Domanda

Sto correndo Kohana 3 e avendo difficoltà a capire il modulo di autenticazione, o anche se è quello di cui ho bisogno.Fondamentalmente voglio creare un sito di profilo utente di base con Nome utente / Protezione password di base.

Come faccio a prendere i miei controller esistenti ...

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

... e usali con una sorta di sistema di autenticazione

È stato utile?

Soluzione

Per Kohana 3 vorrai effettuare il check-in before e non generacodicitagCode come Jistone suggerisce.

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

abbastanza semplice da capire.Puoi inserirlo in un controller e avere tutti i controller che necessitano di autenticazione per estenderlo.

Altri suggerimenti

Se richiederete di essere registrato da un utente per tutte le pagine sul controller è possibile inserire un assegno nell'istruzione __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');
    }
}
.

Questo è il codice che utilizziamo, ma è Kohana 2, non 3, quindi è necessario regolare un po 'per i tuoi scopi.

Ho fornito un collegamento a una breve procedura dettagliata per l'installazione e l'utilizzo di base del Auth Module in Kohana 3

Una volta che si dispone del processo di auth processi, è possibile proteggere determinati controller verificando un utente registrato all'utente e un corretto ruolo di autenticazione nel tuo metodo PRIMA () o creare un controller di base per tutti i controller che avranno bisogno di questo assegno.Se l'utente non è connesso, reindirizzarli nella pagina di accesso, se non dispongono del livello di accesso (o ruolo), è possibile mostrare loro una pagina "Accesso negato".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top