Cakephp - отключить CSRF для использования API в приложении Android - PullRequest
0 голосов
/ 19 января 2019

Здесь у нас есть cakephp версия 3.7.2.

Cakephp установил Csrf в качестве cookie-файлов в браузерах, но мы хотим вызывать Api из мобильного приложения [Android], для которого не нужно устанавливать cookie-файлы.

Я отключил Csrf в моем localhost , успешно прокомментировав:

$routes->applyMiddleware('csrf'); //configs/routes.php

И после этого cookie не устанавливается автоматически.

Моя проблема в том, что когда я публикую его на сервере (в сети), файл cookie проекта все еще устанавливается в браузере.

Примечание: мы использовали домен SSL (https)

1 Ответ

0 голосов
/ 20 января 2019

В Cakephp для отключения промежуточного программного обеспечения CSRF вы должны прокомментировать CsrfProtectionMiddleware в /src/Application.php

   public function middleware($middlewareQueue)
      {
           $middlewareQueue
        // Catch any exceptions in the lower layers,
        // and make an error page/response
        ->add(ErrorHandlerMiddleware::class)

        // Handle plugin/theme assets like CakePHP normally does.
        ->add(new AssetMiddleware([
            'cacheTime' => Configure::read('Asset.cacheTime')
        ]))

        // Add routing middleware.
        // Routes collection cache enabled by default, to disable route caching
        // pass null as cacheConfig, example: `new RoutingMiddleware($this)`
        // you might want to disable this cache in case your routing is extremely simple
        ->add(new RoutingMiddleware($this, '_cake_routes_'));


        // Add csrf middleware.   // comment these lines
        //            ->add(new CsrfProtectionMiddleware([
        //                'httpOnly' => true
        //            ]));

        return $middlewareQueue;
     }

Cakephp -> Промежуточное программное обеспечение -> Промежуточное программное обеспечение межсайтового запроса (CSRF)

Надеюсь, это поможет!

...