CakePHP-Dienste

WBOY
Freigeben: 2024-09-10 17:26:04
Original
777 Leute haben es durchsucht

In 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();
Nach dem Login kopieren

Ä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());
   }
}
Nach dem Login kopieren

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());
   } 
}
?>
Nach dem Login kopieren

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();
?>
Nach dem Login kopieren

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.
Nach dem Login kopieren

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"
   ]); 
?>
Nach dem Login kopieren

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.

CakePHP-Dienste

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

CakePHP-Dienste

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!

Verwandte Etiketten:
Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!