抱歉,您的会话已过期。请刷新并重试。 - Laravel 5.8

Sorry, your session has expired. Please refresh and try again. - Laravel 5.8

我创建了一条路线Route::post('/ddos/store','DdosController@store');

我也有控制器

public function store()
{

    dd("HERE");

    $ddos                = new Ddos;
    $ddos->ip            = $ip;
    $ddos->details       = $details;
    $ddoss->save();

    return $ddos;

}

通过 postman

进行测试 post 时,我不断得到 -

我想从我的控制器上看到文本 "HERE"。

我做错了什么?

dd 行执行之前执行了一个中间件。它被称为CSRF Protection。您可以通过在 app\Http\Middleware\VerifyCsrfToken.

中添加此行来排除它
    protected $except = [
        '/ddos/store',
    ];

如果你坚持用邮递员发送csrf令牌,你可以创建测试用例并将其保存在环境变量中(我建议这样做)。这 link 可能会对您有所帮助。

Postman 未在请求中发送 CSRF 令牌,并且您的路由在应用 VerifyCsrfToken 中间件

web 路由组下

将您的路线移至 api 组或将其添加为例外

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'ddos/store'
    ];
}