Несоответствие токена CSRF в cakephp3.7 - PullRequest
0 голосов
/ 26 февраля 2019

Я создаю одну форму опроса, для которой я создаю один контроллер вручную по одной веб-ссылке метода, в которой перечислены все вопросы на экране с формой.

, когда я нажимаю кнопку отправки, я вызываю метод add в том жеконтроллер с данными запроса, но выдает ошибку.

<?php
namespace App\Controller;

use App\Controller\AppController;

/**
 * Users Controller
 *
 * @property \App\Model\Table\UsersTable $Users
 *
 * @method \App\Model\Entity\User[]|\Cake\Datasource\ResultSetInterface 
  paginate($object = null, array $settings = [])
 */
class SurveyquestionController extends AppController
{
    public function beforeFilter($event)
    {
        parent::beforeFilter($event);
       // Allow users to register and logout.
       // You should not add the "login" action to allow list. Doing so would
       // cause problems with normal functioning of AuthComponent.
       $this->Auth->allow(['webink']);
   }
   /**
    * webink method
 *
 * @return \Cake\Http\Response|void
 */
public function webink()
{
    $this->loadModel ('Questionmaster');
    $questions = $this->Questionmaster->find('all')->contain(['Questiontype']);
    $this->set(compact('questions'));
}

/**
 * Add method
 *
 * @return \Cake\Http\Response|null Redirects on successful add, renders view otherwise.
 */
public function add()
{
    print_r($this->request->getData());
    die;
    $user = $this->Users->newEntity();
    if ($this->request->is('post')) {
        $user = $this->Users->patchEntity($user, $this->request->getData());
        if ($this->Users->save($user)) {
            $this->Flash->success(__('The user has been saved.'));

            return $this->redirect(['action' => 'login']);
        }
        $this->Flash->error(__('The user could not be saved. Please, try again.'));
    }
    $this->set(compact('user'));
}



}

AppController

<?php

/ ** * CakePHP (tm): среда быстрой разработки (https://cakephp.org) * Copyright(c) Cake Software Foundation, Inc. (https://cakefoundation.org) * * Лицензия распространяется по лицензии MIT * Для получения полной информации об авторских правах и лицензиях см. LICENSE.txt * При распространении файлов должно сохраняться указанное выше уведомление об авторских правах. * *@copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * @link https://cakephp.org Проект CakePHP (tm) * @since 0.2.9 * @license https://opensource.org/licenses/mit-license.php Лицензия MIT* / namespace App \ Controller;

использовать Cake \ Controller \ Controller; использовать Cake \ Event \ Event;

/ ** * Application Controller * * Добавить методы всего приложения в классниже, ваш контрольLlers * унаследуют их.* * @link https://book.cakephp.org/3.0/en/controllers.html#the-app-controller * / class AppController расширяет контроллер {

/**
 * Initialization hook method.
 *
 * Use this method to add common initialization code like loading components.
 *
 * e.g. `$this->loadComponent('Security');`
 *
 * @return void
 */
public function initialize()
{
    parent::initialize();

    $this->loadComponent('RequestHandler', [
        'enableBeforeRedirect' => false,
    ]);
    $this->loadComponent('Flash');
    $this->loadComponent('Csrf');


    $this->loadComponent('Auth', [

        'authenticate' => [
            'Form' => [
                'fields' => [
                    'username' => 'username',
                    'password' => 'password'
                ]
            ]
        ],

        'loginRedirect' => [
            'controller' => 'Survey',
            'action' => 'index'
        ],

        'logoutRedirect' => [
            'controller' => 'users',
            'action' => 'login'                
        ],
        //use isAuthorized in Controllers
        'authorize' => 'Controller',
        'unauthorizedRedirect' => $this->referer()


    ]);
    /*
     * Enable the following component for recommended CakePHP security settings.
     * see https://book.cakephp.org/3.0/en/controllers/components/security.html
     */
    //$this->loadComponent('Security');

}


public function beforeFilter($event) {

    parent::beforeFilter($event);
    // Allow users to register and logout.
    $this->Auth->allow(['login', 'logout']);

}

}

enter image description here enter image description here

...