Fare profili utente con Kohana
-
09-09-2020 - |
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
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".