web-dev-qa-db-fra.com

Laravel 5 avec Xdebug lance toujours "La charge utile est invalide."

J'ai configuré Xdebug sur VScode pour déboguer mon application Laravel. Mais, quand je commence à déboguer, Laravel lève toujours cette erreur: Exception has occurred. Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.

J'ai déjà essayé d'exécuter php artisan optimize.

Quelqu'un ici a déjà fait face à ce problème? J'utilise Laravel 5.5

Ps. J'ai essayé de déboguer une application Laravel 4. Cela a fonctionné sans aucun problème. Donc, je pense que cela pourrait être quelque chose de spécifique pour Laravel 5.

7
Dyego Nery

Par défaut, Laravel crypte, puis décrypte également, tous les cookies d'une requête.

Lorsque vous utilisez Xdebug pour déboguer votre application depuis un navigateur, un cookie appelé "XDEBUG_SESSION" est défini. Comme ce cookie n'a pas été défini, et donc pas crypté, par le framework Laravel, une erreur sera émise lorsque le framework détectera et tentera automatiquement de décrypter le cookie.

La solution correcte consiste simplement à ajouter le cookie "XDEBUG_SESSION" au tableau des exceptions du middleware App\Http\Middleware\EncryptCookies.

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

Le commentaire @ceejayoz a résolu le problème. Je lance phot artisan otimize, et efface tous mes cookies sur le navigateur, et cela a commencé à fonctionner correctement. 

2
Dyego Nery

En ce qui me concerne, j'ai également dû désactiver les signalisations Exceptions et Tout , ou le problème persiste.

0
bdebever

C'est ma solution. J'utilise VsCode et la configuration du fichier xdebug (launch.json) doit correspondre à l'espace de travail 

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "port": 9000,
        "log":true,
        "pathMappings": {

           // "serverSourceRoot": "/var/www/html",
            //"localSourceRoot": "${workspaceRoot}"
            "/var/www/html":"/Users/{username}/sites/{mysitefolder}"

        },
    },
    {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9000
    }
]

}

0
Efrén Hz

Commenté temporairement\App\Http\Middleware\EncryptCookies :: class, qui fait partie du groupe de middleware Web de app/Http/Kernel. Résolu mon problème avec ça. N'oubliez pas de le retourner, cependant. Des meilleures solutions de quelqu'un? J'ai essayé les méthodes mentionnées ci-dessus, personne n'a travaillé pour moi, malheureusement.

0
Homer