CakePHP-Dienste
Sep 10, 2024 pm 05:26 PMIn diesem Kapitel geht es um die Informationen zum Authentifizierungsprozess, der in CakePHP verfügbar ist.
Authentifizierung
Authentifizierung ist der Prozess der Identifizierung des richtigen Benutzers. CakePHP unterstützt drei Arten der Authentifizierung.
FormAuthenticate ? Damit k?nnen Sie Benutzer anhand von Formular-POST-Daten authentifizieren. Normalerweise handelt es sich hierbei um ein Anmeldeformular, in das Benutzer Informationen eingeben. Dies ist die Standardauthentifizierungsmethode.
BasicAuthenticate ? Damit k?nnen Sie Benutzer mithilfe der einfachen HTTP-Authentifizierung authentifizieren
DigestAuthenticate ? Damit k?nnen Sie Benutzer mithilfe der Digest-HTTP-Authentifizierung authentifizieren.
Beispiel für FormCakePHP-Dienste
Nehmen Sie ?nderungen in der Datei config/routes.php vor, wie im folgenden Code gezeigt.
config/routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/auth',['controller'=>'Authexs','action'=>'index']); $routes->connect('/login',['controller'=>'Authexs','action'=>'login']); $routes->connect('/logout',['controller'=>'Authexs','action'=>'logout']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
?ndern Sie den Code der AppController.php-Datei wie im folgenden Programm gezeigt.
src/Controller/AppController.php
<?php namespace App\Controller; use Cake\Controller\Controller; use Cake\Event\Event; use Cake\Controller\Component\AuthComponent; class AppController extends Controller { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); $this->loadComponent('Auth', [ 'authenticate' => [ 'Form' => [ 'fields' => [ 'username' => 'username', 'password' => 'password' ] ] ], 'loginAction' => [ 'controller' => 'Authexs', 'action' => 'login' ], 'loginRedirect' => [ 'controller' => 'Authexs', 'action' => 'index' ], 'logoutRedirect' => [ 'controller' => 'Authexs', 'action' => 'login' ] ]); } public function beforeFilter(Event $event) { $this->Auth->allow(['index','view']); $this->set('loggedIn', $this->Auth->user()); } }
Erstellen Sie die Datei AuthexsController.php unter src/Controller/AuthexsController.php.Kopieren Sie den folgenden Code in die Controller-Datei.
src/Controller/AuthexsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; use Cake\Event\Event; use Cake\Auth\DefaultPasswordHasher; class AuthexsController extends AppController { var $components = array('Auth'); public function index(){ } public function login(){ if($this->request->is('post')) { $user = $this->Auth->identify(); if($user){ $this->Auth->setUser($user); return $this->redirect($this->Auth->redirectUrl()); } else $this->Flash->error('Your username or password is incorrect.'); } } public function logout(){ return $this->redirect($this->Auth->logout()); } } ?>
Erstellen Sie ein Verzeichnis Authexs unter src/Template und erstellen Sie unter diesem Verzeichnis eine View-Datei mit dem Namen login.php. Kopieren Sie den folgenden Code in diese Datei.
src/Template/Authexs/login.php
<?php echo $this->Form->create(); echo $this->Form->control('username'); echo $this->Form->control('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
Erstellen Sie eine weitere View-Datei mit dem Namen logout.php. Kopieren Sie den folgenden Code in diese Datei.
src/Template/Authexs/logout.php
You are successfully logged out.
Erstellen Sie eine weitere Ansichtsdatei mit dem Namen index.php.Kopieren Sie den folgenden Code in diese Datei.
src/Template/Authexs/index.php
You are successfully logged in. <?php echo $this->Html->link('logout',[ "controller" => "Authexs","action" => "logout" ]); ?>
Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen.
http://localhost/cakephp4/auth
Ausgabe
Da die Authentifizierung implementiert wurde und Sie versuchen, die oben genannte URL aufzurufen, werden Sie wie unten gezeigt zur Anmeldeseite weitergeleitet.

Nachdem Sie die korrekten Anmeldeinformationen eingegeben haben, werden Sie angemeldet und zum unten gezeigten Bildschirm weitergeleitet.

Nachdem Sie auf den Link Abmelden geklickt haben, werden Sie erneut zum Anmeldebildschirm weitergeleitet.
Das obige ist der detaillierte Inhalt vonCakePHP-Dienste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Vollversion von Mantianxing Comic ist https://www.mantianxingmh.com. Die Plattform deckt eine Vielzahl von Themen wie Leidenschaft, Liebe, Spannung, Science -Fiction usw. mit reichen Ressourcen und zeitnahen Aktualisierungen und unterstützt ein klassifiziertes Abruf. Es bietet eine hochaufl?sende Bildqualit?t, mehrere Seitenverdrehungsmodi, benutzerdefinierte Hintergrund- und Helligkeitsanpassung und verfügt über einen Augenschutzmodus, um das Leseerlebnis zu optimieren. Benutzer k?nnen ein Bücherregal erstellen, das Lesen von Datens?tzen speichern, offline herunterladen und den Fortschritt des Cross-Ger?ts erreichen.

Verwenden Sie die Funktion Unlink (), um Dateien in PHP zu l?schen. Sie müssen sicherstellen, dass der Dateipfad korrekt ist und der Server Schreibberechtigungen hat. Vor dem L?schen sollten Sie überprüfen, ob die Datei existiert, und verhindern, dass der Weg b?swillig manipuliert wird.

OopinPhporganizescodinTorusableClasseSandObjects

Verwenden Sie MySQLI_Insert_id () (Prozedurstil), $ mySQLi-> insert_id (Objektstil) oder $ pdo-> lastInsertid () (PDO), um die letzte eingefügte ID zu erhalten, und muss sofort in derselben Verbindung aufgerufen werden, um die Genauigkeit zu gew?hrleisten.

FinalclasseSSandMethodsinphppreventinheritanceAnDoverridingToprotectcriticalCode.2.AfinalclassCannotbeexted, sichergestellt, dassBehaviorremainared.3.AfinalMethodcannotbeoverridden, ProverningconsistentimplementationacrosSuBsuBsuBsuBsubclasses.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.

Verwenden Sie einzelne Zitate oder entkommene Doppelzitate, um HTML in PHP auszuführen. Es wird empfohlen, Zeichenfolgen mit einzelnen Zitaten zu wickeln, um Attribut -Zitatkonflikte zu vermeiden. Dynamischer Inhalt kann in Kombination mit variablem Splei?en oder Heredoc -Syntax erzeugt werden.

AsingletonClassinphpensuryoneinstance existsByusingAprivateConstructor, Verhinderung der Cloningandunialisierung und Verbreitung von AccessointviaastaticMethodhatretRurnSthesingleInstancestoredinaprivatestaticproperty.

Verwenden Sie $ _gettoaccessurlqueryStringVariableSinphp, suchasname = Johnandage = 30fromhttps: //example.com/search.php? Name = John & Age = 30; immerValidateAndsanitizeInputsusingFilter_Input () und AvoidsensistaNevivedataNurlsdueTuetoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoEletoexposens.
