CakePHP 3.6 - Как заставить DebugKit работать с плагином авторизации? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть проект Cakephp 3.6.13 с включенными плагинами DebugKit (3.16.5) и Authorization (1.0.0) (и плагином Authentication 1.0.1).

Панель DebugKit не загружается в процессе разработки, при этом сервер возвращает: " В запрос к /debug-kit/toolbar/5b7dae82-9c94-48df-a16b-fbf13bd97045 не применены какие-либо проверки авторизации. ", что имеет смысл, но как мне получать запросы к DebugKit для передачи авторизации без влияния на авторизацию для остальной части сайта?

Использование примера RequestPolicy работает для плагина === запросов DebugKit, но тогда мои публичные действия (определенные с помощью skipAuthorization) больше не авторизуются или, точнее, я не знаю, как авторизоваться их.

1 Ответ

0 голосов
/ 08 ноября 2018

Как предположил ndm, я условно добавил промежуточное ПО авторизации, когда запрос был не для плагина DebugKit. Я добавил это в свою функцию промежуточного программного обеспечения Application.php:

$auth = new AuthorizationMiddleware($this);
$middlewareQueue
    ->add(function (ServerRequestInterface $request, ResponseInterface $response, callable $next) use ($auth) {
        if ($request->getParam('plugin') !== 'DebugKit') {
            return $auth($request, $response, $next);
        }
        return $next($request, $response);
    });

Не уверен, что это рекомендуемый способ, но, похоже, он работает.

...