Question

Je suis en cours d'exécution Kohana 3, et avoir du mal à comprendre le module d'Authentification, ou même si c'est ce dont j'ai besoin.Fondamentalement, je veux créer une base de profil de l'utilisateur du site avec base de nom d'utilisateur/mot de passe de protection.

Comment dois-je prendre mon contrôleurs existants...

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

...et de les utiliser avec une sorte de système d'authentification

Était-ce utile?

La solution

Pour Kohana 3, vous aurez envie de faire votre check-in before et pas __construct comme JIStone suggère.

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

Assez Simple à comprendre.Vous pouvez mettre ceci dans un contrôleur et tous les contrôleurs qui ont besoin d'authentification pour prolonger.

Autres conseils

Si vous avez besoin d'un utilisateur d'être enregistré pour toutes les pages sur le contrôleur, vous pouvez mettre un chèque dans votre __construct() déclaration:

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

C'est le code que nous utilisons, mais il est Kohana 2, pas 3, de sorte que vous aurez besoin d'ajuster un peu à vos fins.

J'ai fourni un lien vers une procédure à suivre pour l'installation et l'utilisation de base de la Module d'authentification à Kohana 3

Une fois que vous avez votre processus d'authentification, vous pouvez protéger certains contrôleurs en recherchant un utilisateur connecté et un rôle d'authentification approprié dans votre méthode avant () ou créez un contrôleur de base pour tous vos contrôleurs qui auront besoin de cette vérification.Si l'utilisateur n'est pas connecté, rediriger-les sur la page de connexion, s'ils ne disposent pas du niveau d'accès approprié (ou du rôle), vous pouvez leur indiquer une page "Accès refusé".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top