Как не требовать аутентификацию после нажатия кнопки «Отправить» в CakePHP 1.3 - PullRequest
0 голосов
/ 30 января 2019

Я создал функцию в контроллере и соответствующий ей вид (называемый «обратная связь») для страницы, которая не требует аутентификации, и URL выглядит следующим образом:

http://[DOMAIN]/products/feedback/11351/6673/24678/2/rt6a513gr45255hrt563443h2463hd63

URL работает без аутентификации и все идеально.Этот URL содержит форму, которую посетитель должен заполнить, а затем эти данные отправляются прямо в базу данных.Проблема заключается в том, что при отправке формы, если посетитель еще не вошел в систему, требуется проверка подлинности, и процесс прерывается таким образом, что данные из формы никогда не отправляются в базу данных.Я хочу, чтобы этот URL не требовал аутентификации, никогда, ни когда страница и форма загружены (эта часть уже работает нормально), ни когда форма отправлена ​​(это то, что мне нужно исправить, потому что, когда нажимается кнопка отправки), аутентификация требуется немедленно).

ОБНОВЛЕНИЕ 1:

Я уже пытался включить следующий код в `app / controllers / products_controller.php:

function beforeFilter(){
    ........................
    ........................
    ........................
    parent::beforeFilter();
    $this->Auth->allow('feedback');
}

Моя идея состояла в том, чтобы исключить действие feedback из требования аутентификации.Я попробовал это, основываясь на документации, найденной на https://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html:

Например, если мы хотим разрешить всем пользователям доступ к индексам и методам просмотра (но не любым другим), мы бы сделали следующее:

function beforeFilter () {$ this-> Auth-> allow ('index', 'view');}

Я нашел то же самое предложение CakePHP Bypass компонент Auth для обхода компонента Auth в CakePHP.

1 Ответ

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

Я достиг этого, включив products/feedback в мой массив исключений в файле app/app_controller, чтобы всякий раз, когда посещение относилось к URL-адресу, для которого я хочу, чтобы аутентификация была пропущена, этот код делал магию: $this->Auth->allow('*');.Теперь он работает правильно, как я хотел.

...