Страница входа и регистрации Laravel 5.5 сообщает: Срок действия страницы истек из-за неактивности. [TokenMismatchException]

Я только что создал новый проект laravel версии 5.5 с помощью установщика laravel. И запустите команду «php artisan make: auth«. Виды и контроллер создаются для аутентификации пользователя. И также запускаются»php ремесленник мигрировать«для создания таблиц, необходимых в базе данных. При посещении страницы входа и регистрации, заполнения формы и отправки. Это показывает» Срок действия страницы истек из-за неактивности. Пожалуйста, обновите и попробуйте снова. «. Но обновление страницы не поможет.
Видно в исходном коде, где вызывает исключение:

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

7

Решение

У меня была такая же проблема на localhost:8000 (php artisan serve). Может быть, это совпадение, но примерьтечистый браузер«, кроме того, что вы использовали в предыдущей разработке.
Для меня это сработало.

Похоже, что проблема в файлах cookie от разработки с предыдущими версиями Laravel по тому же адресу.

9

Другие решения

Я думаю, что вы пропустили токен CSRF.

не забудьте использовать {!! csrf_field() !!}

28

В моем случае я получил то же сообщение об ошибке, а потом решил, что пропустил добавление csrf_token

{{ csrf_field() }}

Или без помощника формы, который будет,

<input type="hidden" name="_token" value="{{ csrf_token() }}">

Если это не сработает, тогда

Обновить кеш браузера и, надеюсь, это сработает, спасибо.

12

У меня была та же самая проблема, и это было, потому что я использовал virtualhost, и я настраивал ниже переменную mydomain.com. в файле config / session.php

'domain' => env('SESSION_DOMAIN', 'mydomain.com'),

Когда я изменил его на ноль, то он начал работать

'domain' => env('SESSION_DOMAIN', 'null'),

Я не знаю, в чем причина, но сейчас она работает нормально.

3

Добавить токен csrf

       <input type="hidden" name="_token" value="{{ csrf_token() }}">
2

У меня была такая же проблема.
vagrant reload --provision работал на меня

1

Убедитесь, что ваш 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',
];
}
0

Похоже, это настройки разрешений либо для хранилища, и / или для начальной загрузки / кэша.

Я использую сервер Cloudways. Я сбросил разрешения на моем сервере в настройках приложения, и теперь он работает. На моем локальном сервере разработки эквивалентно было установить chmod 777 в хранилище. Я использовал 755 ранее, и ошибка сохранилась.

0
По вопросам рекламы [email protected]