Я создаю API для своего приложения cakePHP.Я следовал за документацией, я добавил этот код в AppController:
$this->loadComponent('Auth', [
'authenticate' => [
'Digest' => [
'fields' => ['username' => 'username', 'password' => 'digest_hash'],
'userModel' => 'Users'
],
],
'storage' => 'Memory',
'unauthorizedRedirect' => false
]);
Также я хэшировал пароль, добавив следующий код в UsersTable.php
:
public function beforeSave(Event $event)
{
$entity = $event->getData('entity');
// Make a password for digest auth.
$entity->digest_hash = DigestAuthenticate::password(
$entity->username,
$entity->plain_password,
env('SERVER_NAME')
);
return true;
}
Я исключилзарегистрируйте метод авторизации, используя этот код внутри UsersController.php
public function beforeFilter(Event $event) {
parent::beforeFilter($event);
$this->Auth->allow(['add']);
}
Я тестирую API с помощью почтальона, я успешно добавил пользователя, и вывод:
"username": "Lio",
"digest_hash": "0cbcff228b5d0e085bc99721cbc1bea7",
"id": 8
Теперь, как я могу использовать digest_hash для входа в систему и как я могу авторизовать остальные методы, используя digest_hash?Мне нужно написать метод входа?или мне нужно отправлять имя пользователя и digest_hash в качестве заголовков с каждым запросом?