Heim Backend-Entwicklung PHP-Tutorial So fügen Sie eine neue Benutzerüberprüfung in yii hinzu

So fügen Sie eine neue Benutzerüberprüfung in yii hinzu

Jun 15, 2018 pm 04:20 PM
yii 用户验证

Dieser Artikel ist eine detaillierte Analyse und Einführung in die Methode zum Hinzufügen einer neuen Benutzerüberprüfung in yii. Freunde, die sie benötigen, können darauf verweisen

1 Warum müssen Sie das tun? Einen neuen Benutzer hinzufügen? Verifizierung:
Weil ich das Website-Backend und das Frontend in derselben yii-Anwendung erstellen möchte. Und diese beiden Benutzerverifizierungen sind völlig unterschiedlich , daher sind zwei verschiedene Anmeldeseiten erforderlich und Benutzerinformationen müssen in verschiedenen Cookies oder Sitzungen gespeichert werden. Daher muss einer Anwendung eine Benutzerüberprüfung hinzugefügt werden
2 🎜>
Bevor wir die Benutzerüberprüfung anpassen, müssen wir zunächst die Überprüfungs- und Autorisierungsmethoden von yii herausfinden.
Um einen Benutzer zu überprüfen, müssen wir eine Überprüfungsklasse mit Überprüfungslogik definieren Zur Implementierung in der IUserIdentity-Schnittstelle können verschiedene Klassen unterschiedliche Überprüfungsmethoden implementieren. Für die Website-Anmeldung ist im Allgemeinen die CUserIdentity-Klasse erforderlich, die im Allgemeinen zur Überprüfung von Benutzernamen und Passwörtern verwendet wird Es ist die Methode „authenticate()“, um unsere eigene
-Überprüfungsmethode zu implementieren. Der spezifische Code lautet wie folgt:
PHP-Code

class UserIdentity extends CUserIdentity  
{  
    private $_id;  
    public function authenticate()  
    {  
        $record=User::model()->findByAttributes(array('username'=>$this->username));  
        if($record===null)  
            $this->errorCode=self::ERROR_USERNAME_INVALID;  
        else if($record->password!==md5($this->password))  
            $this->errorCode=self::ERROR_PASSWORD_INVALID;  
        else 
        {  
            $this->_id=$record->id;  
            $this->setState('title', $record->title);  
            $this->errorCode=self::ERROR_NONE;  
        }  
        return !$this->errorCode;  
    }  
    public function getId()  
    {  
        return $this->_id;  
    }  
}
Nach dem Login kopieren

Wenn sich der Benutzer anmeldet, lautet der folgende Code aufgerufen:

PHP-Code

// 使用提供的用户名和密码登录用户  
$identity=new UserIdentity($username,$password);  
if($identity->authenticate())  
    Yii::app()->user->login($identity);  
else 
    echo $identity->errorMessage;
Nach dem Login kopieren


Wenn der Benutzer das Programm verlässt, wird der folgende Code aufgerufen:
PHP-Code

// 注销当前用户  
Yii::app()->user->logout(); 
 其中的user是yii的一个components.需要在protected/config/main.php中定义
Nach dem Login kopieren

PHP-Code

'user'=>array(  
    // enable cookie-based authentication  
    'allowAutoLogin'=>true,  
        'loginUrl' => array('site/login'),  
),
Nach dem Login kopieren

Hier haben wir den Klassennamen des Benutzers nicht angegeben, da der Benutzer in Yii standardmäßig eine Instanz der CWebUser-Klasse ist.

Wir haben jetzt die Überprüfung der Benutzeranmeldung implementiert Unabhängig davon, ob der Benutzer angemeldet ist oder nicht, kann auf alle Aktionen zugegriffen werden. Der nächste Schritt besteht darin, den Benutzerzugriff über den Zugriffskontrollfilter zu autorisieren ein einfacher Controller mit Zugriffskontrolle:
PHP-Code

class AdminDefaultController extends CController  
{   
    public function filters()  
        {  
            return array('accessControl');  
        }  
        public function accessRules()  
        {  
            return array(  
                array(  
                    'allow',  
                    'users' => array('@'),  
                ),  
                array(  
                    'deny',  
                    'users' => array('*')  
                ),  
            );  
        }  
}
Nach dem Login kopieren

Wir legen bestimmte Filter in der Filtermethode fest. Wir können sehen, dass das von der Filtermethode zurückgegebene Array einen accessControl-Parameter enthält ist eine filterAccessControl-Methode in der CController-Klasse:

PHP-Code

public function filterAccessControl($filterChain)  
{  
    $filter=new CAccessControlFilter;  
    $filter->setRules($this->accessRules());  
    $filter->filter($filterChain);  
}
Nach dem Login kopieren
Erstellen Sie darin eine neue CAccessControlFilter-Instanz und übergeben Sie die Parameter, die von der accessRules()-Methode zurückgegeben werden, wenn setRules.

$ filter->filter($filterChain) Rufen Sie dann weiterhin andere Filter auf.


Und alle spezifischen Autorisierungsregeln sind in accessRules definiert:
Php-Code

public function accessRules()  
    {  
        return array(  
            array('deny',  
                'actions'=>array('create', 'edit'),  
                'users'=>array('?'),  
            ),  
            array('allow',  
                'actions'=>array('delete'),  
                'roles'=>array('admin'),  
            ),  
            array('deny',  
                'actions'=>array('delete'),  
                'users'=>array('*'),  
            ),  
        );  
    }
Nach dem Login kopieren

Spezifische Regeln finden Sie im yii-Handbuch.



3. Fügen Sie ein neues Verifizierungssystem hinzu:Zuerst erben wir einen CAdminUser von CWebUser:
Php-Code

class CAdminWebUser extends CWebUser  
{  
    public $loginUrl = array('admin/admin/login');  
}
Nach dem Login kopieren
Wir müssen Es in Komponenten platzieren

Wenn es sich um eine globale Anwendung handelt, übergeben Sie den Komponentenabschnitt von protected/config/main.php:
PHP-Code

'user'=>array(  
    // enable cookie-based authentication  
        'class' => 'CAdminUser',  
    'allowAutoLogin'=>true,  
       'loginUrl' => array('site/login'),  
),
Nach dem Login kopieren

Wenn es in Modulen ist Fügen Sie in diesem Fall den folgenden Code in die Init-Methode der Modulklasse ein:

PHP-Code

$this->setComponents(array(  
       'adminUser' => array(  
                'class' => 'CAdminWebUser',  
                'allowAutoLogin' => false,  
        )  
));
Nach dem Login kopieren

Der letzte Aufrufmethode

PHP-Code

//全局应用  
Yii::app()->getComponent('adminUser');  
//在模块中  
Yii::app()->controller->module->getComponent('adminUser');
Nach dem Login kopieren
Aber das reicht nicht aus, wir müssen auch den Filter des Controllers ändern. Wir müssen einen Filter anpassen, um die Überprüfung und Autorisierung eines anderen Benutzers zu implementieren

Der erste Schritt besteht darin, einen Filter anzupassen:
PHP-Code

class CAdminAccessControlFilter extends CAccessControlFilter  
{  
    protected function preFilter($filterChain)  
    {  
        $app=Yii::app();  
        $request=$app->getRequest();  
        $user = Yii::app()->controller->module->getComponent('adminUser');  
        $verb=$request->getRequestType();  
        $ip=$request->getUserHostAddress();  
        foreach($this->getRules() as $rule)  
        {  
            if(($allow=$rule->isUserAllowed($user,$filterChain->controller,$filterChain->action,$ip,$verb))>0) // allowed  
                break;  
            else if($allow<0) // denied  
            {  
                $this->accessDenied($user);  
                return false;  
            }  
        }  
        return true;  
    }  
}
Nach dem Login kopieren

und dann die filterAccessController-Methode der CController-Klasse

PHP-Code < neu zu schreiben 🎜>

public function filterAccessControl($filterChain)  
{  
    $filter = new CAdminAccessControlFilter();  
    $filter->setRules($this->accessRules());  
    $filter->filter($filterChain);  
}  
//在这里我们使用自定义的filter类替换了原来的filter
Nach dem Login kopieren

OK, hier können wir in den accessRules() dieses Controllers angeben, dass der Administrator berechtigt ist

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für alle hilfreich sein Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

Über die Implementierung der Anmeldefunktion im Yii-Framework von PHP


So ändern Sie yii2 .0 Benutzer Die für die Anmeldung verwendete Benutzertabelle besteht aus anderen Tabellen


Das obige ist der detaillierte Inhalt vonSo fügen Sie eine neue Benutzerüberprüfung in yii hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Expedition 33 - So erhalten Sie perfekte Chroma -Katalysatoren
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1676
14
PHP-Tutorial
1278
29
C#-Tutorial
1257
24
Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Jun 19, 2023 am 08:09 AM

Im aktuellen Informationszeitalter sind Big Data, künstliche Intelligenz, Cloud Computing und andere Technologien in den Fokus großer Unternehmen gerückt. Unter diesen Technologien hat die Grafikkarten-Rendering-Technologie als leistungsstarke Grafikverarbeitungstechnologie immer mehr Aufmerksamkeit erhalten. Die Grafikkarten-Rendering-Technologie wird häufig in der Spieleentwicklung, bei Film- und Fernsehspezialeffekten, im technischen Modellbau und in anderen Bereichen eingesetzt. Für Entwickler ist die Wahl eines Frameworks, das zu ihren Projekten passt, eine sehr wichtige Entscheidung. Unter den aktuellen Sprachen ist PHP eine sehr dynamische Sprache. Einige hervorragende PHP-Frameworks wie Yii2, Ph

So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System Jun 27, 2023 am 09:04 AM

Mit der kontinuierlichen Weiterentwicklung der Cloud-Computing-Technologie ist die Datensicherung zu etwas geworden, das jedes Unternehmen durchführen muss. In diesem Zusammenhang ist es besonders wichtig, ein hochverfügbares Cloud-Backup-System zu entwickeln. Das PHP-Framework Yii ist ein leistungsstarkes Framework, das Entwicklern dabei helfen kann, schnell leistungsstarke Webanwendungen zu erstellen. Im Folgenden wird vorgestellt, wie Sie mit dem Yii-Framework ein hochverfügbares Cloud-Backup-System entwickeln. Entwerfen des Datenbankmodells Im Yii-Framework ist das Datenbankmodell ein sehr wichtiger Teil. Denn das Datensicherungssystem erfordert viele Tabellen und Beziehungen

Wie verwende ich das Yii3-Framework in PHP? Wie verwende ich das Yii3-Framework in PHP? May 31, 2023 pm 10:42 PM

Mit der Weiterentwicklung des Internets wird auch die Nachfrage nach der Entwicklung von Webanwendungen immer größer. Für Entwickler erfordert die Entwicklung von Anwendungen ein stabiles, effizientes und leistungsstarkes Framework, das die Entwicklungseffizienz verbessern kann. Yii ist ein führendes Hochleistungs-PHP-Framework, das umfangreiche Funktionen und gute Leistung bietet. Yii3 ist die nächste Generation des Yii-Frameworks, das die Leistung und Codequalität basierend auf Yii2 weiter optimiert. In diesem Artikel stellen wir vor, wie Sie das Yii3-Framework zum Entwickeln von PHP-Anwendungen verwenden.

Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Jun 21, 2023 am 11:22 AM

Das Yii-Framework ist ein Open-Source-PHP-Webanwendungsframework, das zahlreiche Tools und Komponenten zur Vereinfachung des Prozesses der Webanwendungsentwicklung bereitstellt, wobei die Datenabfrage eine der wichtigen Komponenten ist. Im Yii-Framework können wir eine SQL-ähnliche Syntax verwenden, um auf die Datenbank zuzugreifen und Daten effizient abzufragen und zu bearbeiten. Der Abfrage-Builder des Yii-Frameworks umfasst hauptsächlich die folgenden Typen: ActiveRecord-Abfrage, QueryBuilder-Abfrage, Befehlsabfrage und Original-SQL-Abfrage

Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Jun 19, 2023 am 10:57 AM

Da die Nachfrage nach Webanwendungen weiter wächst, haben Entwickler bei der Auswahl von Entwicklungsframeworks immer mehr Möglichkeiten. Symfony und Yii2 sind zwei beliebte PHP-Frameworks. Sie verfügen beide über leistungsstarke Funktionen und Leistung. Welches Framework ist jedoch besser geeignet, wenn es darum geht, umfangreiche Webanwendungen zu entwickeln? Als nächstes führen wir eine vergleichende Analyse von Symphony und Yii2 durch, um Ihnen zu helfen, eine bessere Wahl zu treffen. Grundlegende Übersicht Symphony ist ein Open-Source-Webanwendungs-Framework, das in PHP geschrieben ist und darauf aufbaut

So kündigen Sie das Win11-Anmeldekonto So kündigen Sie das Win11-Anmeldekonto Jan 11, 2024 pm 05:24 PM

Im Win11-System müssen wir uns jedes Mal anmelden, wenn wir das System betreten. Wenn jedoch nur ein Konto in unserem System vorhanden ist oder das Konto nicht geschützt werden muss, müssen wir uns nicht jedes Mal anmelden Wenn wir das Anmeldekonto löschen, indem wir das Passwort löschen, werfen wir einen Blick auf die folgenden spezifischen Methoden. So kündigen Sie das Anmeldekonto in Win11 1. Klicken Sie zunächst auf die Pfeilschaltfläche in der Mitte der Taskleiste und wählen Sie schnell die Option „Start“. 2. Rufen Sie als Nächstes die Systemeinstellungsoberfläche auf und klicken Sie schnell auf die Option „Ausführen“, um zu starten. 3. Geben Sie als Nächstes den Befehl „controluserpasswords2“ ein und drücken Sie die Eingabetaste. 4. Klicken Sie, um die Option „Benutzerkontoeigenschaften“ zu öffnen und deaktivieren Sie „Um dieses Gerät zu verwenden, müssen Benutzer Folgendes eingeben.“

Wie führe ich eine Benutzereingabevalidierung und Sicherheitsfilterung in PHP durch? Wie führe ich eine Benutzereingabevalidierung und Sicherheitsfilterung in PHP durch? Jun 29, 2023 pm 03:01 PM

Wie führe ich eine Benutzereingabevalidierung und Sicherheitsfilterung in PHP durch? Bei der Entwicklung von Webanwendungen sind die Validierung von Benutzereingaben und die Sicherheitsfilterung sehr wichtige Aspekte. Wenn Benutzereingaben nicht korrekt verarbeitet werden, kann dies zu verschiedenen Sicherheitslücken führen, wie zum Beispiel Cross-Site-Scripting (XSS) und SQL-Injection-Angriffen. Daher ist die Validierung und Sicherheitsfilterung von Benutzereingaben eine der wichtigen Maßnahmen zum Schutz von Webanwendungen. In diesem Artikel wird erläutert, wie Sie eine Benutzereingabevalidierung und Sicherheitsfilterung in PHP durchführen. Datentypvalidierung Bevor Benutzereingaben empfangen werden, müssen diese zunächst validiert werden

So legen Sie unter Win11 ein Einschaltkennwort fest So legen Sie unter Win11 ein Einschaltkennwort fest Dec 22, 2023 pm 01:18 PM

Wenn wir den Datenschutz für unseren Computer festlegen möchten, können wir ein Einschaltkennwort für den Computer festlegen. Dies muss nur in den Einstellungen vorgenommen werden. So legen Sie in Win11 ein Einschaltkennwort fest: 1. Klicken Sie zunächst mit der rechten Maustaste auf das Menü „Start“ und klicken Sie auf „Einstellungen“. 2. Klicken Sie anschließend auf „Konto“. 3. Klicken Sie anschließend auf „Anmeldeoptionen“. 4. Suchen Sie dann nach „Passwort“ und klicken Sie auf „Hinzufügen“. 5. Schließlich kann es erfolgreich hinzugefügt werden.

See all articles