Fabricación de perfiles de usuario con Kohana
-
09-09-2020 - |
Pregunta
Estoy corriendo Kohana 3, y tienen dificultades para entender el módulo Auth, o incluso si es lo que necesito.Básicamente quiero crear un perfil de usuario básico sitio básica nombre de usuario/contraseña de protección.
Cómo puedo hacer mi controladores ya existentes...
class Controller_Profile extends Controller
{
function action_index( $user_id )
{
// User should already be authenticated by here I think
}
}
...y el uso de ellos con algún tipo de sistema de autenticación
Solución
Para Kohana 3 usted querrá hacer su check in before
y no __construct
como JIStone sugiere.
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('');
}
}
Bastante Simple de entender.Usted puede poner esto en un controlador y todos los controladores que necesita autenticación para ampliar eso.
Otros consejos
Si va a ser que el usuario necesite estar registrado para todas las páginas en el controlador se puede poner una marca en su __construct()
declaración:
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 es el código que uso, pero es Kohana 2, no 3, por lo que tendrá que ajustar un poco para sus propósitos.
He proporcionado un enlace a un corto tutorial para la instalación y el uso básico de la Módulo de autenticación en Kohana 3
Una vez que haya trabajado su proceso de autenticación, puede proteger a ciertos controladores al verificar un rol de autenticación correctamente registrado en su método antes () o crear un controlador base para todos sus controladores que necesitarán este cheque.Si el usuario no ha iniciado sesión, redirigirlos a la página de inicio de sesión, si no tienen el nivel de acceso (o rol adecuado), puede mostrarles una página de "acceso denegado".