Das Replizieren von Ansprüchen als Header ist veraltet und wird aus v4.0 – Laravel Passport Problem im lcobucci/jwt-Paket entfernt

Lesezeit: 6 Minuten

Benutzer-Avatar
Ali Motameni

Ich benutze laravel/passport:7.5.1 Paket in meinem Laravel-Projekt und wurde kürzlich mit dieser Ausnahme konfrontiert. Irgendeine Idee? Ich stufe die vorübergehend herunter lcobucci/jwt:3.4.0 Paket zu lcobucci/jwt:3.3.3

Replicating claims as headers is deprecated and will removed from v4.0. Please manually set the header if you need it replicated.

Stack-Trace:

"exception": {
  "trace": [
    "/var/www/app/vendor/lcobucci/jwt/src/Builder.php:334",
    "/var/www/app/vendor/lcobucci/jwt/src/Builder.php:185",
    "/var/www/app/vendor/lcobucci/jwt/src/Builder.php:201",
    "/var/www/app/vendor/league/oauth2-server/src/Entities/Traits/AccessTokenTrait.php:34",
    "/var/www/app/vendor/league/oauth2-server/src/ResponseTypes/BearerTokenResponse.php:28",
    "/var/www/app/vendor/league/oauth2-server/src/AuthorizationServer.php:202",
    "/var/www/app/vendor/laravel/passport/src/PersonalAccessTokenFactory.php:114",
    "/var/www/app/vendor/laravel/passport/src/PersonalAccessTokenFactory.php:71",
    "/var/www/app/vendor/laravel/passport/src/HasApiTokens.php:67",
    "/var/www/app/app/Http/Controllers/Auth/Shop/GetTokenController.php:84",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:219",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:176",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:680",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php:58",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:657",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:623",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:612",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30",
    "/var/www/app/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php:65",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/app/dms-pubsub/src/Middlewares/CaptureCorrelationIdMiddleware.php:40",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/app/Http/Middleware/TrimData.php:31",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/fideloper/proxy/src/TrustProxies.php:57",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151",
    "/var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116",
    "/var/www/app/public/index.php:55"
  ],
  "class": "ErrorException",
  "file": "/var/www/app/vendor/lcobucci/jwt/src/Builder.php:334",
  "message": "Replicating claims as headers is deprecated and will removed from v4.0. Please manually set the header if you need it replicated.",
  "code": 0
}

  • Ein Upgrade auf Passport v9 behebt das Problem für mich

    – ultrasamad

    20. Januar 2021 um 23:14 Uhr

Benutzer-Avatar
Ahmed Nasser

Dieses Problem hat mich gezwungen, das zu wissen laravel/passport Verwendet thephpleague/oauth2-server und thephpleague/oauth2-server Verwendet lcobucci/jwt “3.3.3”.

composer require lcobucci/jwt=3.3.3

Ich hätte mir nicht die Mühe gemacht, dies zu überprüfen, wenn heute alles gut funktioniert hätte, nachdem ich das Composer-Update für meine App ausgeführt habe.

  • Dies hat es behoben und sollte die akzeptierte Antwort sein.

    – slv007

    27. Dezember 2020 um 3:15 Uhr

  • Dies hat das Problem behoben!

    – Dima

    9. Januar 2021 um 17:46 Uhr

  • @WasifKhalil – Diese Antwort ist vielleicht nützlicher, aber eine andere Antwort war zuerst und vom Autor der Bibliothek.

    – Herbst Leonard

    12. Januar 2021 um 17:23 Uhr

  • Diese Antwort war diejenige, die wirklich geholfen hat

    – Alan Rezende

    30. Januar 2021 um 21:24 Uhr

  • Leute, installiert es einfach. Es klappt . Bei mir hat es für Laravel 5.7 mit Laravel/Passport-Version 7.5.1 funktioniert

    – Hashmat Waziri

    3. Februar 2021 um 3:17 Uhr

Es tut mir sehr leid, dass ich Verwirrung oder Probleme verursacht habe. Bitte prüfen https://github.com/lcobucci/jwt/issues/550#issuecomment-733557709 für meine vollständige Erklärung, warum dieser Ansatz gewählt wurde und warum er in meinem PoV nicht als BC-Break angesehen wird.

  • Es tut uns leid, dass Sie sich wegen dieser Änderung aufregen, danke, dass Sie in den Interwebs danach Ausschau halten und Querverweise bereitstellen. Ich verstehe, woher Sie kommen, und ich stimme Ihnen irgendwie zu, aber eine bahnbrechende Änderung ist eine bahnbrechende Änderung, für wen auch immer sie bestimmt ist (zumindest die Absicht, wenn nicht die Umsetzung)

    – Simonhamp

    16. Dezember 2020 um 14:21 Uhr

  • Das Ändern der Fehlermeldeebene ist für die meisten Benutzer nicht akzeptabel, da PHP in 90% der Fälle keine Rechte dazu hat. Abgesehen davon, wenn Sie es global einstellen, kann es Auswirkungen auf andere Teile der Anwendung haben. Das Unterdrücken von Fehlern in der Codezeile mit dem Symbol “@” ist ein Codegeruch.

    – Heavyweb

    19. Juli 2021 um 13:57 Uhr

Ich weiß, wie sehr die Leute eine Copy-and-Paste-Antwort lieben. Ich habe das behoben, indem ich diesen Code hinzugefügt habe app/Providers/AppServiceProvider.php in dem boot Methode

if (config('app.debug')) {
    error_reporting(E_ALL & ~E_USER_DEPRECATED);
} else {
    error_reporting(0);
}

Das hat der Autor von vorgeschlagen. Siehe Antwort von @Luís Cobucci. Oder schau hier: https://github.com/lcobucci/jwt/issues/550#issuecomment-733557709

Wenn Sie die @Ahmed Nasser-Methode verwenden, um eine alte Version anzufordern, werden Sie wahrscheinlich in Zukunft Probleme haben.

  • Ja, das hat funktioniert. Ich bevorzuge dies gegenüber der Aktualisierung des jwt-Pakets

    – Agam Adhityo

    30. Juni 2021 um 4:43 Uhr

  • Klappt wunderbar. Können Sie Ihre Antwort bitte erläutern? Ich kopiere und füge gerne ein, aber ich möchte auch verstehen, was ich eingefügt habe :p.

    – MU’men Ahmed

    8. November 2021 um 11:53 Uhr

  • Es unterdrückt im Grunde die Ausnahme. Der Fehler selbst ist nicht wirklich ein Problem, da er nur eine veraltete Funktion meldet. Also unterdrücken wir einfach Abwertungsmeldungen.

    – Antony Thompson

    9. November 2021 um 17:05 Uhr

  • es hat funktioniert, danke ton!!

    – Loganathan Natarajan

    6. Januar um 14:10 Uhr

1317480cookie-checkDas Replizieren von Ansprüchen als Header ist veraltet und wird aus v4.0 – Laravel Passport Problem im lcobucci/jwt-Paket entfernt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy