Frage

Ich verwende Kohana 3 und habe Schwierigkeiten, das Authentifizierungsmodul zu verstehen, oder auch wenn es das ist, was ich brauche.Grundsätzlich möchte ich eine grundlegende Benutzerprofilseite mit grundlegendem Benutzernamen- / Passwortschutz erstellen.

Wie nehme ich meine vorhandenen Controller...

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

...und verwenden Sie sie mit einer Art Authentifizierungssystem

War es hilfreich?

Lösung

Für Kohana 3 möchten Sie Ihren Check-in durchführen before und nicht __construct wie JIStone vorschlägt.

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

Einfach genug zu verstehen.Sie können dies in einen Controller einfügen und über alle Controller verfügen, die eine Authentifizierung benötigen, um dies zu erweitern.

Andere Tipps

Wenn Sie verlangen, dass ein Benutzer für alle Seiten auf dem Controller registriert ist, können Sie ein Häkchen in Ihre setzen __construct() Anweisung:

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

Dies ist der Code, den wir verwenden, aber es ist Kohana 2, nicht 3, also müssen Sie ein wenig für Ihre Zwecke anpassen.

Ich habe einen Link zu einer kurzen Komplettlösung für die Installation und die Grundnutzung des Auth-Modul in Kohana 3

Nachdem Sie Ihren Auth-Prozess arbeitet, können Sie bestimmte Controller schützen, indem Sie auf eine angemeldete Benutzer- und ordnungsgemäße Authentifizierungsrolle in Ihrer vorher () -Methode prüfen oder einen Basiscontroller für alle Ihre Controller erstellen, die diese Prüfung benötigen.Wenn der Benutzer nicht angemeldet ist, leiten Sie sie auf der Anmeldeseite um, wenn sie nicht über die richtige Zugriffsebene (oder die Rolle) verfügen, können Sie ihnen eine Seite "Zugriff verweigert" zeigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top