2015-11-26 3 views
2

У меня есть плагин для моего приложения, которое пользователи могут реализовать на своем веб-сайте, который содержит форму. Проблема в том, что я получаю TokenMismatchException при отправке формы. Из всех исследований, которые я сделал, я вижу, это защита от перекрестного происхождения от Laravel.Laravel 5.1 CSRF в iframe, как заставить его работать?

Я знаю, что могу отключить его, но я не знаю, как я буду защищать форму после этого?

У кого-нибудь из вас возникла эта проблема? Какова наилучшая практика?

Спасибо

Примечание: Я заметил, что если пользователь ранее посетил оригинальный сайт, а затем переходит на веб-сайт, где были включены IFrame, исключение не бросать больше.

ответ

1

Laravel не разрешает отправку форм из других доменов, но вы можете установить исключение.

Вы можете добавить исключение в App/Http/Middleware/VerifyCsrfToken.php.

protected $except = [ 
    'post/something' 
]; 

Источник: EasyLaravel

+0

Я только что ответил @Houssain Amrani, что я уже включил его – lesandru

+0

Вы уверены, что поле CSRF будет отображаться? Правильно ли отправлены данные на ваш сервер? Вы можете проверить это в FireBug или в инструменте отладки Chrome. – Alex

+0

Да, человек. CSRF получает рендеринг, все отлично работает в Firefox и Chrome, но в Safari я получаю TokenMismatchException – lesandru

0

если я понял проблему. , вероятно, форма отправки должна иметь входной токен, содержащий сеанс токена.

<form mothod = 'post' action = 'YourAction'> 

<input type = 'hidden' name = '_token' value = '{{Session:token()}}'> 
. 
. 
. 
</form> 
+0

он имеет токен прилагается – lesandru

0

Вы можете отключить CSRF маркер проверки для конкретного URL путем добавления URL в приложение/Http/Промежуточное/VerifyCsrfToken.php файла в массиве, кроме

Смежные вопросы