Yêu cầu đăng trong Laravel - Lỗi - 419 Xin lỗi, phiên của bạn / 419 trang của bạn đã hết hạn


88

Tôi đã cài đặt Laravel 5.7

Đã thêm một biểu mẫu vào tệp \resources\views\welcome.blade.php

<form method="POST" action="/foo" >
    @csrf
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

Đã thêm vào tệp \routes\web.php

Route::post('/foo', function () {
    echo 1;
    return;
});

Sau khi gửi yêu cầu ĐĂNG:

419 Xin lỗi, phiên của bạn đã hết hạn. Vui lòng làm mới và thử lại.

Trong phiên bản 5.6không có vấn đề như vậy.


Bạn đã thử thêm chuyển hướng chưa? Thay vì return;bạn có thể gọi return redirect()->back();. Từ những gì tôi có thể thấy, ứng dụng không có gì phải làm sau yêu cầu đăng. Có thể bạn có thể chuyển hướng nó đến một dạng xem sau khi xử lý yêu cầu.
dcangulo

1
Tôi đang gặp vấn đề tương tự. Khi tôi chuyển sang phiên cơ sở dữ liệu này xảy ra và khi tôi thay đổi lại để filecho SESSION_DRIVERtrong .envnó hoạt động tốt. Tại sao phiên dựa trên cơ sở dữ liệu không hoạt động.
Junaid Qadir Shekhanzai

Tôi đã sao chép mã chính xác của bạn vào một bản cài đặt laravel 5.7 mới. Nó đã làm việc. Có một vấn đề ở nơi khác.
Kyle Wardle

vấn đề này do sự cố mã thông báo. Tôi đã thử chạy mã tương tự như thế này, nhưng không gặp lỗi. Bạn nên cung cấp thêm thông tin như trình điều khiển phiên của bạn, hiển thị giá trị _token trong biểu mẫu. Ngoài ra, bạn có thể gỡ lỗi mình trong tập tin này vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.phpdòng 67 để biết tại sao
bangnokia

1
Tôi nhận ra rằng tôi đã sử dụng sessionsbảng cho một mục đích khác. Sau khi thay đổi tên bảng này thành một phù hợp hơn và ran artisan session:tablevà làm mới tất cả mọi thứ di cư đang làm việc tốt
Junaid Qadir Shekhanzai

Câu trả lời:


115

Trước khi đọc bên dưới, hãy đảm bảo rằng bạn có @csrfhoặc {{ csrf_field() }}ở dạng của bạn như

<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>

Thông báo lỗi Đã hết hạn phiên hoặc 419 Trang đã hết hạn trong larvel xuất hiện do ở đâu đó xác minh mã thông báo csrf của bạn không thành công, có nghĩa là App\Http\Middleware\VerifyCsrfToken::classphần mềm trung gian đã được bật. Dưới dạng @csrfchỉ thị lưỡi dao đã được thêm vào, điều này cũng sẽ ổn.

Sau đó, khu vực khác để kiểm tra là phiên. Việc csrfxác minh mã thông báo liên quan trực tiếp đến phiên của bạn, Vì vậy, bạn có thể muốn kiểm tra xem trình điều khiển phiên của mình có hoạt động hay không, chẳng hạn như Redis được định cấu hình không chính xác có thể gây ra sự cố.

Có thể bạn có thể thử chuyển đổi phần mềm / trình điều khiển phiên từ .envtệp của mình , các trình điều khiển được hỗ trợ được cung cấp bên dưới

Trình điều khiển phiên được hỗ trợ trong Laravel 5, Laravel 6 và Laravel 7 (Liên kết tài liệu)

  • file - phiên được lưu trữ trong bộ nhớ / khuôn khổ / phiên.
  • cookie - phiên được lưu trữ trong cookie được mã hóa, an toàn.
  • database - phiên được lưu trữ trong cơ sở dữ liệu quan hệ.
  • memcached/ redis- phiên được lưu trữ trong một trong những cửa hàng dựa trên bộ nhớ cache, nhanh.
  • array - phiên được lưu trữ trong một mảng PHP và sẽ không tồn tại.

Nếu biểu mẫu của bạn hoạt động sau khi chuyển đổi trình điều khiển phiên, thì có điều gì đó không ổn với trình điều khiển cụ thể đó, hãy cố gắng sửa lỗi từ đó.

Các tình huống có thể xảy ra lỗi

  • Có thể các phiên dựa trên tệp có thể không hoạt động do các vấn đề về quyền với /storagethư mục (một googling nhanh sẽ tìm cho bạn giải pháp), cũng nên nhớ đặt 777 cho thư mục không bao giờ là giải pháp.

  • Trong trường hợp của trình điều khiển cơ sở dữ liệu, kết nối DB của bạn có thể sai hoặc sessionsbảng có thể không tồn tại hoặc được định cấu hình sai (phần cấu hình sai đã được xác nhận là một vấn đề theo nhận xét của @Junaid Qadir).

  • redis/memcached cấu hình sai hoặc đang bị thao tác bởi một số đoạn mã khác trong hệ thống cùng một lúc.

Có thể là một ý tưởng hay khi thực thi php artisan key:generatevà tạo một khóa ứng dụng mới, khóa này sẽ xóa dữ liệu phiên.

Xóa bộ nhớ cache của trình duyệt CỨNG , tôi thấy chrome và firefox là thủ phạm nhiều hơn tôi có thể nhớ.

Đọc thêm về lý do tại sao khóa ứng dụng lại quan trọng


1
Đôi khi chỉ là các trình duyệt, chủ yếu là Chrome sẽ không đặt giá trị phiên Set-Cookie vì nó không đúng định dạng hoặc không chuẩn. Vì vậy, Laravel sẽ không tìm thấy bất kỳ giá trị phiên hiện có nào từ yêu cầu HTTP để so sánh với _tokengiá trị nhận được từ FORM. Tránh sử dụng SESSION_DOMAIN=...với IP mà Thông số cookie của Chrome và HTTP coi là không an toàn.
KeitelDOG

Tôi gặp vấn đề tương tự, nhưng tôi không nhận được lỗi liên tục. Nó chỉ xảy ra theo thời gian. Tôi đoán điều đó có nghĩa là không có vấn đề gì với trình điều khiển phiên, bởi vì nó hoạt động 99% thời gian. Nhưng tôi đang chạy một ứng dụng trực tiếp và thỉnh thoảng tôi nhận được phàn nàn từ khách hàng. Nó rất hiếm mặc dù vậy. Tôi đang sử dụng trình điều khiển phiên tệp. Có ai đó biết tại sao điều này xảy ra trong trường hợp của tôi không? Cảm ơn bạn
TheAngelM97

@ TheAngelM97 Bạn có thể dễ dàng tạo lại lỗi này bằng cách truy cập trang đăng nhập hoặc đăng ký. Không làm bất cứ điều gì, có thể, hơn 30 phút. Sau đó, khi bạn nhấp vào gửi, các 419 Page Expiredhiển thị. Vì lợi ích của khả năng sử dụng, làm thế nào để bạn nói với một người dùng đơn giản những gì vừa xảy ra và cách giải quyết nó?
Pathros

38

Điều này là do biểu mẫu yêu cầu một csrf. Trong phiên bản 5.7, họ đã đổi nó thành @csrf

<form action="" method="post">
    @csrf
    ...

Người giới thiệu: https://laravel.com/docs/5.7/csrf


6
Biểu mẫu của anh ấy bao gồm một mã thông báo csrf. Không chắc sau này anh ấy có chỉnh sửa hay không.
eResourcesInc

yeah, hình thức của mình ban đầu có một csrflĩnh vực, tôi chỉ nhìn vào lịch sử sửa đổi
Dexter Bengil

13

trường hợp 1: nếu bạn đang chạy dự án trong hệ thống cục bộ của mình như 127.0.01: 8000,

sau đó

thêm SESSION_DOMAIN=vào tệp .env của bạn

hoặc trong config / session.php của bạn 'domain' => env('SESSION_DOMAIN', ''),

và sau đó chạy php artisan cache:clear

trường hợp 2: nếu dự án đang chạy trên máy chủ và bạn có miền như "mydomain.com"

thêm SESSION_DOMAIN=mydomain.comvào tệp .env của bạn

hoặc trong config / session.php của bạn 'domain' => env('SESSION_DOMAIN', 'mydomain.com'),

và sau đó chạy php artisan cache:clear


9

Làm thế nào về việc sử dụng

{{ csrf_field() }} thay vì @csrf

Lỗi 419 chủ yếu là do sự cố mã thông báo csrf.


Ý bạn là {{ csrf_field() }}?
Travis Britz

9

Tôi sử dụng Laravel 5.7, tôi đã gặp vấn đề tương tự và đó là do mã thông báo csrf không ở dạng, vì vậy việc thêm

@csrf

đã khắc phục sự cố


7

Cố gắng bình luận \App\Http\Middleware\EncryptCookies::classtrong \app\Http\Kernel.php tôi có vấn đề tương tự và giải quyết nó bằng cách làm như vậy. Có lẽ không phải là giải pháp tốt nhất vì bảo mật nhưng ít nhất nó đã hoạt động.

Trước đây tôi đã thử:

  • Xóa bộ nhớ cache
  • Tạo khóa ứng dụng mới
  • Chạy ứng dụng của tôi trong các trình duyệt khác nhau (Chrome 70, Mozilla Firefox 57 và IE 11)
  • Chạy ứng dụng của tôi trong một máy tính khác
  • Bình luận \App\Http\Middleware\VerifyCsrfToken::classtrong\app\Http\Kernel.php
  • Bình luận \Illuminate\Session\Middleware\AuthenticateSession::classtrong\app\Http\Kernel.php
  • Nâng cấp và hạ cấp Laravel (từ 5,6 đến 5,7)

Nhưng không có cái nào ở trên hiệu quả với tôi.

BIÊN TẬP

Trường hợp của tôi ở đây là mỗi khi tôi đăng nhập, một tệp phiên mới sẽ được tạo (Tệp cũ vẫn còn tồn tại, nhưng đột nhiên bị quên. Kiểm tra storage/framework/sessions) và mã thông báo CSRF mới được tạo. Vì vậy, vấn đề không phải là với VerifyCsrfToken.

Như @Vladd đã đề cập trong phần bình luận, bạn không bao giờ nên bình luận \App\Http\Middleware\VerifyCsrfToken::class. Bạn phải kiểm tra xem bạn đã gửi đúng CSRF TOKEN đến máy chủ chưa.


1
Trong số những cách bạn đã đề cập, chỉ có nhận xét về lớp \ App \ Http \ Middleware \ VerifyCsrfToken :: trong \ app \ Http \ Kernel.php phù hợp với tôi.
Lex Soft

1
Xóa bộ nhớ cache, Tạo khóa ứng dụng mới + Xóa cookie
dobs

Bạn sẽ không bao giờ nhận xét về lớp \ App \ Http \ Middleware \ VerifyCsrfToken ::. Tại sao bạn lại làm vậy? Để tạo ra điểm yếu của bản thân trong ứng dụng?
Vladd

@dobs Cảm ơn bạn đã thêm '+ Xóa Cookie' vì tôi đã gặp lỗi 419 ngay cả sau khi làm mọi thứ có thể và nó chỉ hoạt động khi tôi xóa cookie của trình duyệt / thử ở chế độ ẩn danh.
Niraj Pandey

6

thay đổi @csrftrong welcome.blade.php của bạn thành<input type="hidden" name="_token" value="{{ csrf_token() }}">

vì vậy mã của bạn như thế này:

<form method="POST" action="/foo" >
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>

   <button type="submit">Submit</button>
</form>

6

Nó có thể là một vấn đề với phiên của bạn. Sau khi thử với các cài đặt này, tôi đã giải quyết được sự cố của mình. Đối với tôi nó hóa ra là lựa chọn cuối cùng.

  • Nếu bạn đang sử dụng "tệp" làm trình điều khiển phiên, hãy xem bộ nhớ / khuôn khổ / phiên nếu các phiên được lưu sau khi làm mới. Nếu không, rất có thể là do quyền của thư mục không chính xác. Kiểm tra xem bộ nhớ / thư mục của bạn có đúng không
  • Cố gắng tắt tất cả Javascript trong các trang của bạn (bằng cách tắt nó thông qua trình điều hướng hoặc bên trong mã) và đảm bảo rằng 'http_only' => true,
  • Cố gắng sử dụng có và không có https
  • Đảm bảo rằng biến SESSION_DRIVER KHÔNG rỗng
  • Cố gắng chuyển đổi giữa 'mã hóa' => sai và 'mã hóa' => đúng,
  • Cố gắng thay đổi tên cookie 'cookie' => 'laravelsession',
  • Hãy thử đặt SESSION_DOMAIN của bạn thành miền thực tế HOẶC rỗng
  • Cố gắng chuyển đổi giữa 'secure' => env ('SESSION_SECURE_COOKIE', false) và 'secure' => env ('SESSION_SECURE_COOKIE', true),

Nguồn: Phiên Laravel luôn thay đổi mọi yêu cầu / làm mới trong Laravel 5.4


Vâng, sau khi thử nhiều thứ khác, công SESSION_SECURE_COOKIEtắc (đã đổi thành false) đã làm điều đó cho tôi. (trên localhost:8000)
Marten Koetsier

SESSION_SECURE_COOKIE cũng là vấn đề đối với tôi, tôi đã thay đổi nó khi làm theo hướng dẫn tối ưu hóa trang web.
Bram Janssen

đối với tôi nó hoạt động với https nhưng không hoạt động với http ... bất kỳ ý tưởng tại sao? cảm ơn vì câu trả lời tuyệt vời, tôi đã mất hàng giờ để tìm nó.
sharkyenergy

4

thêm mã thông báo csrf và vấn đề của bạn sẽ được giải quyết. {{csrf_token}} hoặc @csrf


4

Để giải quyết lỗi này, trước tiên bạn cần chèn một trong các lệnh sau vào thẻ biểu mẫu.

@csrf HOẶC LÀ {{ csrf_field }}

Nếu sự cố của bạn không được giải quyết, hãy làm như sau: (Lưu ý rằng một trong các lệnh trên phải nằm trong thẻ biểu mẫu)

1.Chèn một trong các lệnh sau vào thẻ biểu mẫu @csrfHOẶC{{ csrf_field }}

2.Mở tệp .env và thay đổi các giá trị thành "tệp" trong phần SESSION_DRIVER.

3. sau đó bạn nên đặt lại bộ nhớ cache laravel. gõ các lệnh dưới đây vào thiết bị đầu cuối

php artisan view:clear php artisan route:clear php artisan cache:clear

php artisan config:cache

4. trong bước cuối cùng, rút ​​phích cắm của dự án khỏi phục vụ và nhấp lại vào phục vụ nghệ nhân php

Tôi hy vọng vấn đề của bạn được giải quyết


3

Sau rất nhiều thời gian, tôi đã giải quyết được nó theo cách này

Đường dẫn cài đặt laravel của tôi không giống như được đặt trong tệp cấu hình session.php

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

2

Nó có thể quá mức cần thiết nhưng bạn có thể thử cách này:

// Biểu mẫu gọi tuyến đường được đặt tên có thêm trường mã thông báo ẩn.

<form method="POST" action="{{ route('foo') }}" >
    @csrf
    <input type="hidden" name="_token" value="{!! csrf_token() !!}">
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

// Tuyến đường được đặt tên

Route::post('/foo', function () {
    return 'bar';
})->name('foo');

// Thêm cái này vào trong <head></head>khối:

<meta name="_token" content="{!! csrf_token() !!}" />

Tôi đã kiểm tra nó trên cục bộ của mình bằng Homestead trên Laravel 5.7, đây là phiên bản mới được cài đặt bằng Laravel Installer 2.0.1 và nó đã hoạt động. Môi trường của bạn là gì?

Lý thuyết: Tôi tự hỏi, nếu có một cái gì đó để làm với lưỡi render html tags với {{ }}vs. {!! !!}về môi trường của bạn hoặc làm thế nào bạn đang phục vụ nó (ví dụ. php artisan serve). Điều gì làm cho tôi nghĩ rằng đó là line 335của /vendor/laravel/framework/src/illuminate/Foundation/helpers.phpnên làm cùng một dòng bằng tay đánh ra ở trên.


Đúng là tuyệt, nhưng <meta>các thẻ nên được đặt bên trong <head>, không phải bên trong <body>. Tôi không chắc trình xác thực HTML thích điều này.
emix

Tôi sẽ nói bạn đúng và điều đó nên được chuyển đến đầu.
jeremykenedy

2

Không có vấn đề trong mã. Tôi đã kiểm tra với mã giống như bạn đã viết với cài đặt mới.

Mã hình thức:

<form method="POST" action="/foo" >
    @csrf
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

web.php mã tệp:

Route::get('/', function () {
    return view('welcome');
});

Route::post('/foo', function () {
    echo 1;
    return;
});

Kết quả sau khi gửi biểu mẫu là: Đầu ra sau khi gửi biểu mẫu

Nếu bạn xóa bộ nhớ cache của trình duyệt hoặc thử với trình duyệt khác, tôi nghĩ rằng nó sẽ được khắc phục.


2

Một cách tiếp cận không tốt là truy cập app \ http \ middleware \ verifycsrftoken.php và thêm tuyến đường vào danh sách $ ngoại trừ. Yêu cầu bài đăng sẽ được bỏ qua để xác minh Mã thông báo CSRF.

protected $except = [
    //
    'doLogin.aspx',
    'create_coupon',
];

2

419 | Trang này có nghĩa là lỗi bảo mật laravel vấn đề nó có nghĩa CSRF lĩnh vực thẻ không được sử dụng một cách chính xác.

sử dụng {{csrf_field}} và vấn đề của bạn sẽ được giải quyết.


2

Nó sẽ hoạt động nếu bạn thử tất cả các bước sau:

  1. Đảm bảo rằng phiên của bạn được cấu hình tốt, cách dễ nhất là tạo tệp và đảm bảo thư mục lưu trữ có quyền chmod 755, sau đó .envbạn đặt nó như bên dưới, trình điều khiển phiên tệp là cách dễ nhất để thiết lập.

    SESSION_DRIVER=file
    SESSION_DOMAIN=
    SESSION_SECURE_COOKIE=false
    
  2. Đảm bảo thư mục Cache được xóa và có thể ghi, bạn có thể thực hiện việc này bằng cách chạy lệnh dưới đây.

    php artisan cache:clear
    
  3. Đảm bảo các quyền của thư mục được thiết lập tốt, chúng phải được định cấu hình như sau:

    sudo chmod -R 755 storage
    sudo chmod -R 755 vendor
    sudo chmod -R 644 bootstrap/cache
    
  4. Đảm bảo biểu mẫu của bạn có @csrfmã thông báo bao gồm.

Hy vọng điều này sẽ giải quyết vấn đề của bạn.


1

Trong của bạn Http/Kernel.php

cố gắng bình luận dòng này:

\Illuminate\Session\Middleware\AuthenticateSession::class,

trong mảng phần mềm trung gian web của bạn

nó có thể là gốc rễ của vấn đề của bạn


1

Theo mặc định, tôi không gặp vấn đề này. Vì vậy, những gì tôi đã làm là chmod -R 644 sessions để tái tạo vấn đề.

nhập mô tả hình ảnh ở đây

Sau đó, tôi đã cấp quyền cho thư mục phiên bằng chmod -R 755 sessions

bây giờ mã dự án của tôi hoạt động trở lại.

nhập mô tả hình ảnh ở đây

Lý do nó xảy ra là bạn lưu trữ bộ nhớ cache của mình trên tệp thiếu quyền ghi.

Tệp cấu hình phiên được lưu trữ tại config / session.php. Đảm bảo xem lại các tùy chọn có sẵn cho bạn trong tệp này. Theo mặc định, Laravel được cấu hình để sử dụng trình điều khiển phiên tệp, trình điều khiển này sẽ hoạt động tốt cho nhiều ứng dụng. Trong các ứng dụng sản xuất, bạn có thể cân nhắc sử dụng trình điều khiển memcached hoặc redis để có hiệu suất phiên nhanh hơn.

Các giải pháp:

1 - Như tôi đã khắc phục ở trên, bạn có thể cấp quyền 755 cho thư mục phiên. 2 - Bạn có thể sử dụng cấu hình trình điều khiển phiên khác.

tệp - phiên được lưu trữ trong bộ nhớ / khuôn khổ / phiên. cookie - phiên được lưu trữ trong cookie an toàn, được mã hóa. cơ sở dữ liệu - phiên được lưu trữ trong cơ sở dữ liệu quan hệ. memcached / redis - các phiên được lưu trữ trong một trong những kho lưu trữ nhanh, dựa trên bộ nhớ cache. mảng - phiên được lưu trữ trong một mảng PHP và sẽ không tồn tại.

Ghi nhớ; Nếu bạn muốn sử dụng memcached / redis, bạn cần phải cài đặt chúng trên máy chủ của mình hoặc vùng chứa redis docker của bạn phải đang chạy.


1

Trên thực tế CSRF là một mã thông báo dựa trên phiên. Thêm tuyến đường của bạn trong một nhóm tuyến đường và thêm phần mềm trung gian kiểm soát các phiên.

web là một phần mềm trung gian mặc định trong laravel và nó có thể kiểm soát các yêu cầu phiên.

Route::group(array('middleware' => ['web']), function () {
  Route::post('/foo', function () {
     echo 1;
     return;
  });
});

1

Nếu bạn đã có lệnh csrf , bạn có thể đã thay đổi cách các phiên chạy.

Trong config/session.php, kiểm tra trường 'an toàn' . Nó sẽ là false nếu https không có sẵn trên máy chủ của bạn.

Bạn cũng có thể đặt SESSION_SECURE_COOKIE=FALSEtrên .envtệp của mình (thư mục gốc).


1

mở cmd dòng lệnh trên dự án của bạn.

1. lệnh

php artisan config:cache

2.comand

php artisan route:clear

1

Bạn cũng có csrf trong tiêu đề ứng dụng của mình?

<meta name="csrf-token" content="{{ csrf_token() }}">

1

Trong khi biểu mẫu có @csrf, nó vẫn hiển thị419 pages has expired

Tôi đã giải quyết nó sau khi cập nhật SESSION_SECURE_COOKIEtùy chọn thành false trong config / session.php

'secure' => env('SESSION_SECURE_COOKIE', false)

hơn xóa bộ nhớ cache


1

Đi tới config / session.php

tìm hàng

'secure' => env('SESSION_SECURE_COOKIE', true),

thay đổi nó thành sai

'secure' => env('SESSION_SECURE_COOKIE', false),

Nếu thông số này được đặt thành TRUE, trình duyệt sẽ yêu cầu bạn sử dụng giao thức HTTPS, nếu không, nó sẽ không lưu trữ phiên. Vì nó không hợp lệ


1

Tôi chỉ xem qua vấn đề này và tôi di chuột vào đây để tìm câu trả lời .. Trong trường hợp của tôi, giải pháp là xóa lịch sử trình duyệt.


1

Trong trường hợp của tôi là?> Ở cuối các route.php. Đã dành rất nhiều thời gian ở đó ...


tương tự, tôi đã quên thêm ?>vào cuốiweb.php
msalihbindak

0

Tôi vừa gặp phải vấn đề tương tự và tôi hoàn toàn ngu ngốc. Tôi đã vô hiệu hóa tất cả các trường biểu mẫu (thay vì chỉ nút gửi) qua javascript trước khi gửi biểu mẫu nói trên! Tất nhiên, điều này dẫn đến tất cả các phần tử biểu mẫu không được gửi (bao gồm cả trường ẩn _token), do đó dẫn đến lỗi 419!

Tôi hy vọng điều này sẽ giúp ai đó khỏi một vài giờ vò đầu!

Đầu vào biểu mẫu bị vô hiệu hóa không xuất hiện trong yêu cầu


0

Tôi nhận được vấn đề này lâu rồi. Tôi nhớ nó gây ra sự cho phép của storage/framework/sessions. Bạn có thể muốn thay đổi nó bằng chmod -R 0777 storage/framework/sessionslệnh. Nó đã làm việc cho tôi.


0

Trong trường hợp của tôi, nó là rất vô lý. Tôi gặp lỗi 419 khi đặt Auth::routes()ở đầu tệp tuyến đường.

Auth::routes();

Route::middleware('auth')->group(function () {
    Route::get('/', 'DashboardController@index')->name('dashboard');
});

Và tôi đã sửa lỗi bằng cách di chuyển Auth::routes();đến cuối tệp tuyến đường.

Route::middleware('auth')->group(function () {
    Route::get('/', 'DashboardController@index')->name('dashboard');
});

Auth::routes();

Có lẽ nó cũng có thể giúp ích cho trường hợp của bạn. Chúc may mắn.


0

Xin lưu ý rằng bạn gặp lỗi 419 nếu bạn đang cố tải lên một tệp lớn vượt quá giới hạn kích thước tệp bài đăng. Trong trường hợp này, bạn có thể tăng cả upload_max_filesize và post_max_size lên một lượng hợp lý, (ví dụ: 10 triệu hoặc 20 triệu tùy thuộc vào trường hợp sử dụng và tài nguyên của bạn), hãy kiểm tra tại đây: https://stackoverflow.com/a/2184541/2100489

Nhưng điều này có thể gây ra các vấn đề về tiêu thụ tài nguyên, ví dụ như băng thông và bộ nhớ. Như một giải pháp, bạn có thể kiểm tra kích thước tệp trước khi gửi biểu mẫu và hiển thị thông báo cảnh báo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.