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

¿Fue útil?

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".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top