In diesem Kapitel geht es um die Informationen zum Authentifizierungsprozess, der in CakePHP verfügbar ist.
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.
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
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!