带有Xdebug的Laravel 5总是抛出“有效载荷无效”。

2022-08-30 18:46:05

我在VScode上配置了Xdebug来调试我的laravel应用程序。但是,当我开始调试时,laravel总是抛出这个错误:Exception has occurred. Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.

我已经尝试运行.php artisan optimize

在座的各位已经面临过这个问题了吗?我使用的是 Laravel 5.5

Ps. 我试图调试一个Laravel 4应用程序。它没有任何问题。所以,我认为这可能是Laravel 5特有的。


答案 1

默认情况下,Laravel将加密并随后解密请求中的所有cookie。

当使用 Xdebug 从浏览器调试应用程序时,会设置一个名为“XDEBUG_SESSION”的 Cookie。由于此 cookie 未由 Laravel 框架设置,因此未加密,因此当框架自动检测并尝试解密 Cookie 时,将引发错误。

正确的解决方案是将“XDEBUG_SESSION”Cookie 添加到中间件中的异常数组中。App\Http\Middleware\EncryptCookies

/**
 * The names of the cookies that should not be encrypted.
 *
 * @var array
 */
protected $except = [
    'XDEBUG_SESSION'
];

答案 2

如果答案不起作用,请尝试将其添加到 launch.json 中

{
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "port": 9001,
        "ignore": [
            "**/vendor/**/*.php"
        ]
    },

更多信息https://stackoverflow.com/a/49795318/1998033


推荐