Я только что создал новый проект laravel версии 5.5 с установщиком laravel. И запустите команду « php artisan make: auth ». Представления и контроллер создаются для аутентификации пользователя. И также запускайте « php artisan migrate » для создания таблиц в базе данных. При посещении страницы входа и регистрации, заполнения формы и отправки. Она показывает «Срок действия страницы из-за неактивности. Обновите и повторите попытку». Но обновление страницы ничего не помогает. В исходном коде, где возникает исключение:
if ($e instanceof ModelNotFoundException) { $e = new NotFoundHttpException($e->getMessage(), $e); } elseif ($e instanceof AuthorizationException) { $e = new AccessDeniedHttpException($e->getMessage()); } elseif ($e instanceof TokenMismatchException) { $e = new HttpException(419, $e->getMessage()); }
Кажется, что «TokenMismatchException» вызывает эту проблему. Когда это произошло? И почему? Я просто создаю этот новый проект и не делал никаких других изменений. Надеюсь, вы получили очки. Я использую php 7.1.9 (laravel 5.5 требует php> 7.0.0). И обслуживайте проект в среде разработки с помощью: php artisan serve
У меня была та же проблема на localhost:8000
( php artisan serve
). Возможно, это совпадение, но попробуйте « чистый браузер », кроме того, что вы использовали с предыдущей разработкой. Для меня это сработало.
Похоже, что проблема связана с кукисами от разработки с предыдущими версиями Laravel на том же url.
Я думаю, вы пропустили токен csrf.
Не забудьте использовать {!! csrf_field() !!}
{!! csrf_field() !!}
В моем случае у меня такое же сообщение об ошибке, а потом я понял, что я пропустил добавить csrf_token
{{ csrf_field() }}
Или без помощника формы, который будет,
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Если это не сработает,
Обновите кеш браузера и, надеюсь, он сработает, спасибо.
Добавить токен csrf
<input type="hidden" name="_token" value="{{ csrf_token() }}">
У меня была такая же проблема. vagrant reload --provision
работала для меня
У меня была такая же проблема, и это было потому, что я использовал virtualhost, и я устанавливаю ниже переменной в mydomain.com. в файле config / session.php
'domain' => env('SESSION_DOMAIN', 'mydomain.com'),
Когда я изменил его на null, он начал работать
'domain' => env('SESSION_DOMAIN', 'null'),
Я не знаю, в чем причина этого, но сейчас он работает нормально.
Эта проблема в основном вызвана тем, что в вашей форме нет токена csrf. Во время проверки токена csrf это не удается, поэтому вы получаете эту страницу. В Laravel обычно нужен токен csrf во всех его формах. Вы можете добавить токен csrf, просто добавив его в форму.
{{ csrf_field() }}
Другой способ сделать это – вы можете исключить свой маршрут в промежуточном программном обеспечении verifycsrftoken.
Просто добавьте защищенное поле в промежуточное ПО с именем маршрута.
protected $except=[ '1st route', '2nd route', . . ];
Это должно сработать.
Убедитесь, что ваша модель User.php
существует в папке приложения, и поля должны быть определены в этой модели.
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; }
По-видимому, это настройки разрешений на любом хранилище и / или загрузке / кеше.
Я использую сервер Cloudways. Я сбрасываю разрешения на моем сервере в разделе «Настройки приложения», и теперь он работает. На моем локальном сервере разработки эквивалентно было установить chmod 777 на хранение. Я использовал 755 ранее, и ошибка сохранялась.
если вы создали новый проект localhost. Вам нужно просмотреть конфигурацию / сеансовую строку: 166, если «secure» => true, вам нужно изменить «secure» => false, когда вы запустите хост или сервер, re-config => true sorry i знайте немного английского, надеюсь, может помочь вам
Я бы также сохранил csrf_token
в метатеге.
<meta name="csrf-token" content="{{ csrf_token() }}">
Я только тестировал запросы на почту для своей апи и сталкивался с одной и той же проблемой. Я решил это, добавив свой маршрут к VerifyCsrfToken
$except
т.е. перейдите в app/Http/Middleware/VerifyCsrfToken
и добавьте
protected $except = [ 'your/route' ];
Но если ваши запросы поступают с некоторых интерфейсных платформ или представлений, рекомендуется добавить {{ csrf_field() }}
в форму, которая отправляет запрос.
Привет для групповых путей, которые вы хотите применить ко всем, используйте этот метод, который является моей версией 5.5 лирваля. Используйте звездочку => перейти в приложение / Http / Middleware / VerifyCsrfToken и добавить
protected $except = [ '/user/*' ];
Это также мой путь пользователя
Route::group(['prefix' => 'user', 'namespace' => 'User', 'as' => 'user.'] , function (){
попробуйте это искать формы в представлениях страниц входа и регистрации и добавьте следующую строку в формы
<input name="_token" type="hidden" value="TtQX3LwLMvrhLcOr75dDP2WzvHve0TE7eyilRebW">