Laravel: запретить пользователям прямой доступ к методу Post - PullRequest
0 голосов
/ 25 августа 2018

У меня есть веб-сайт, который разработан в Laravel.

Проблема:

У меня есть метод маршрута (POST)

Route::post('/profile/edit/save', 'ProfileController@save');

, если я введу этот URL "mywebsite.com/profile/edit/save "Я получаю сообщение об ошибке enter image description here Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

мой файл .env:

 APP_NAME=Laravel
 APP_ENV=production
 APP_DEBUG=false
 APP_LOG_LEVEL=debug
 APP_URL=http://localhost

Я получаю эту ошибку при запуске этого кода на моем сервере, в Localhost я не получаю никаких ошибок.

Я очистил кеш, но он не работает

Как я могу решить эту проблемуПроблема

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Я решил это, добавив это в app \ Exceptions \ handler.php

    public function render($request, Exception $exception)
        {   

             if($exception instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException){
                 return redirect('/');
             }

        return parent::render($request, $exception);
    }
0 голосов
/ 25 августа 2018

Вы не можете получить доступ к почтовому URL, как вы пытались выше. Вы можете получить доступ, только отправив форму, подобную этой ...

<form action="route('post_insert')" method="post">
  {{csrf_field()}}
   <input type="text" />
<input type="submit"/>
</form>

ваш маршрут должен включать это имя ...

Route::post('/profile/save', 'ProfileController@save')->name('post_insert');
...