json 요청을 필터링하고 이러한 요청에 기본 인증을 허용하고 html 요청에 대해 폼 인증 만 허용해야합니다. 내가 AppController.php 내 초기화 함수에서 요청을 필터링 :CakePhp 3으로 html 요청에 대한 json 요청 및 양식 인증을위한 기본 인증을 사용하는 방법은 무엇입니까?
는if ($this->request->is('json')) {
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'authenticate' => [
'Basic' => [
'fields' => ['username' => 'email', 'password' => 'password'],
'contain' => ['Districts']
]
]
]);
} else {
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password'],
'contain' => ['Districts']
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login'
]
]);
}
json으로 요청을 생성하고 인증 된 세션을 가지고 있기 때문에 HTML 요청을 포함하여 다음 사이트의 나머지 부분에 액세스하는 사용자를 허용하는 세션을 저장 . 나는 이것이 무엇을 일으키는 지 알아 내려고 애 쓰면서 결국 기본 인증 방법을위한 저장 매체를 '메모리'로 명시 적으로 선언해야한다는 것을 알게되었습니다. 내 대답은 아래에 올바른 코드를 게시 할 것입니다. 당신은 명시 적으로 기본 인증은 저장 매체에 대한 메모리를 사용, 그렇지 않으면 세션을 만들 것을 선언해야 CakePHP form authentication for normal requests with basic authentication for JSON