@stephania
Для использования компонентов авторизации в CakePHP нужно выполнить следующие шаги:
1 2 3 4 5 6 7 8 9 |
// src/Controller/YourController.php namespace AppController; use CakeControllerController; class YourController extends Controller { public $components = ['Auth']; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// src/Controller/AppController.php namespace AppController; use CakeControllerController; class AppController extends Controller { public $components = [ 'Auth' => [ 'loginAction' => [ 'controller' => 'Users', 'action' => 'login' ], 'authError' => 'You are not authorized to access that location.', 'authenticate' => [ 'Form' => [ 'fields' => ['username' => 'email', 'password' => 'password'] ] ] ] ]; } |
Здесь мы настраиваем несколько параметров компонента:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// src/Controller/YourController.php namespace AppController; use CakeControllerController; class YourController extends Controller { public function beforeFilter(CakeEventEventInterface $event) { parent::beforeFilter($event); $this->Authorization->authorize(); } } |
Вызов $this->Authorization->authorize()
позволяет проверить, имеет ли пользователь права доступа к защищенному ресурсу. Если пользователь не авторизован, он будет перенаправлен на страницу логина.
Эти шаги позволят вам использовать компонент авторизации в CakePHP и защитить ваши ресурсы от несанкционированного доступа.