Страница входа и регистрации Laravel 5.5 гласит: Срок действия страницы истек из-за неактивности.[Исключение tokenmismatchexception]


Я только что создал новый проект 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

Author: brian.shen, 2017-09-01

15 answers

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

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

 8
Author: studiojasper_pl, 2017-09-01 10:11:25

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

Не забывайте использовать {!! csrf_field() !!}

 28
Author: Kokil, 2017-09-01 17:37:18

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

{{ csrf_field() }}

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

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

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

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

 12
Author: Maniruzzaman Akash, 2017-10-02 06:25:19

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

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

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

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

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

 3
Author: Afraz Ahmad, 2017-10-08 20:28:00

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

       <input type="hidden" name="_token" value="{{ csrf_token() }}">
 2
Author: shalini, 2017-09-08 12:16:14

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

 1
Author: maqui nice, 2017-09-03 04:12:40

Убедитесь, что ваша модель 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
Author: Hni Klsi, 2017-09-01 06:37:26

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

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

 0
Author: Dylan Glockler, 2017-09-29 20:45:43

Если вы создали новый локальный хост проекта, вам нужно просмотреть строку конфигурации/сеанса: 166 если "безопасный" => true, вам нужно отредактировать "безопасный" => false, Когда вы поднимаете хост или сервер, переконфигурируйте =>правда , извините, я немного знаю английский, надеюсь, что смогу вам помочь

 0
Author: Scott, 2017-10-04 17:11:18

Я бы также сохранил csrf_token в мета-теге.

<meta name="csrf-token" content="{{ csrf_token() }}">
 0
Author: Raza Mehdi, 2017-10-11 10:09:17

Я только тестировал запросы post для своего api и столкнулся с той же проблемой. Я решил эту проблему, добавив свой маршрут в массив промежуточного ПО VerifyCsrfToken $except, т.Е. Перейдите в app/Http/Middleware/VerifyCsrfToken и добавьте

protected $except = [
        'your/route'
];

Но если ваши запросы поступают с какой-либо интерфейсной платформы или представлений, рекомендуется добавить {{ csrf_field() }} в форму, которая отправляет запрос.

 0
Author: Allan Mwesigwa, 2017-10-26 22:59:13

Привет для групповых путей, которые вы хотите применить ко всем, используйте этот метод, который является моей версией личинки 5.5. Используйте звездочку => перейдите в приложение/Http/Промежуточное программное обеспечение/VerifyCsrfToken и добавьте

protected $except = [
    '/user/*'
];

Это также путь моего пользователя

Route::group(['prefix' => 'user', 'namespace' => 'User', 'as' => 'user.'] , function (){
 0
Author: Ali Najafi, 2017-11-10 14:06:09

Эта проблема в основном вызвана тем, что у вас нет токена csrf в вашей форме. Во время проверки токена csrf происходит сбой, поэтому вы получаете эту страницу. Laravel обычно нуждается в токене csrf во всех его формах. Вы можете добавить токен csrf, просто добавив его в форму.

 {{ csrf_field() }}

Другой способ сделать это - вы можете исключить свой маршрут в промежуточном программном обеспечении verifycsrftoken.

Просто добавьте защищенное поле в промежуточное программное обеспечение с вашим маршрутом имя.

protected $except=[
                    '1st route',
                    '2nd route',
                    .
                    .
                  ];

Это должно сработать.

 0
Author: Darshan, 2017-11-28 09:09:40

У меня тоже была эта проблема! Решил ее с помощью:

  1. Очистка хранилища сеансов браузера и файлов cookie.
  2. Запуск php artisan cache:clear
  3. Обеспечение того, чтобы папка storage/framework/sessions была пустой, за исключением .gitignore.
  4. Перезапуск среды разработки.
 0
Author: Doug Black Jr., 2018-01-26 12:57:40

Попробуйте это сделать, найдите формы в представлениях страниц входа и регистрации и добавьте следующую строку в формы

<input name="_token" type="hidden" value="TtQX3LwLMvrhLcOr75dDP2WzvHve0TE7eyilRebW">
 -4
Author: user8572385, 2017-09-07 06:45:57