CakePHP - Hizmetler
Bu bölüm, CakePHP'de bulunan kimlik doğrulama işlemi hakkındaki bilgileri ele almaktadır.
Doğrulama
Kimlik doğrulama, doğru kullanıcıyı tanımlama işlemidir. CakePHP, üç tür kimlik doğrulamasını destekler.
FormAuthenticate- Form POST verilerine göre kullanıcıların kimliğini doğrulamanıza olanak tanır. Genellikle bu, kullanıcıların bilgi girdiği bir giriş formudur. Bu, varsayılan kimlik doğrulama yöntemidir.
BasicAuthenticate - Temel HTTP kimlik doğrulamasını kullanarak kullanıcıların kimliğini doğrulamanıza olanak tanır
DigestAuthenticate - Digest HTTP kimlik doğrulamasını kullanarak kullanıcıların kimliğini doğrulamanıza olanak tanır.
FormAuthentication Örneği
Aşağıdaki kodda gösterildiği gibi config / route.php dosyasında değişiklikler yapın.
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();
Aşağıdaki programda gösterildiği gibi AppController.php dosyasının kodunu değiştirin.
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());
}
}
Oluşturmak AuthexsController.php dosya src/Controller/AuthexsController.php. Aşağıdaki kodu denetleyici dosyasında kopyalayın.
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());
}
}
?>
Bir dizin oluşturun Authexs -de src/Template ve bu dizinin altında bir View dosya çağrıldı login.php. Aşağıdaki kodu o dosyaya kopyalayın.
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();
?>
Başka bir tane yarat View dosya çağrıldı logout.php. Aşağıdaki kodu o dosyaya kopyalayın.
src/Template/Authexs/logout.php
You are successfully logged out.
Başka bir tane yarat View dosya çağrıldı index.php. Aşağıdaki kodu o dosyaya kopyalayın.
src/Template/Authexs/index.php
You are successfully logged in.
<?php
echo $this->Html->link('logout',[
"controller" => "Authexs","action" => "logout"
]);
?>
Aşağıdaki URL'yi ziyaret ederek yukarıdaki örneği yürütün.
http: // localhost / cakephp4 / auth
Çıktı
Kimlik doğrulama uygulandığından ve yukarıdaki URL'yi ziyaret etmeye çalıştığınızda, aşağıda gösterildiği gibi giriş sayfasına yönlendirileceksiniz.

Doğru kimlik bilgilerini sağladıktan sonra, oturum açacaksınız ve aşağıda gösterildiği gibi ekrana yönlendirileceksiniz.

Tıkladıktan sonra logout bağlantı, tekrar giriş ekranına yönlendirileceksiniz.