Sitzungswerte, die nicht in Laravel Middleware umgeleitet werden (Laravel 12)Php

PHP-Programmierer chatten hier
Anonymous
 Sitzungswerte, die nicht in Laravel Middleware umgeleitet werden (Laravel 12)

Post by Anonymous »

Ich habe eine benutzerdefinierte Laravel Middleware -Klasse erstellt. Daraus geben ich eine Umleitung aus: < /p>

Code: Select all

return redirect()->route('oauth.establishAuth')->with('url.intended', url()->current());
Im empfangenden Controller rufe ich sofort einen DD () auf, um die eingehende Anforderung zu inspizieren/zu debuggen:
>

Code: Select all

public function index (Request $r) {
dd ($r->session()->all());
/// blah...
redirect()->intended('/')->with('success', 'I got the auth token!');
}
Ich würde erwarten, dass die eingehende Anforderung die wichtige URL-URL enthält.

Code: Select all

[
// ...
'_flash' => [ ... ],
'url' => [
'intended' => 'http://my.website/original-dest',
]
]
However, as you see in the image, the only values ​​I get are those managed by Laravel's session manager:
Image

And of course, when I comment out the DD () Aufrufen im obigen Code, werde ich zu/ umgeleitet (aufgrund der Tatsache, dass die Taste von URL.inteded in der Sitzung nicht vorhanden ist). Warum werden die Werte, die ich in die Funktion () < /code> nicht übergeben, von der Empfangsroute nicht gesehen werden? In Bootstrap/app.php , um sicherzustellen, dass StartSession festgelegt wird, bevor ich versuche, Daten an die Sitzung zu schreiben

Code: Select all

return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->priority([
\Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class,
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class,
\Illuminate\Routing\Middleware\ThrottleRequestsWithRedis::class,
\Illuminate\Contracts\Session\Middleware\AuthenticatesSessions::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Illuminate\Auth\Middleware\Authorize::class,
App\Http\Middleware\EnsureIfsTokenValid::class,
]);
})
< /code>

[*] Daten in die Sitzung vor dem Senden in die Sitzung bündeln.  In diesem Debug kann ich sehen, dass der Wert von Animal 
in der Sitzung vor dem Senden enthalten ist, aber er ist nicht da, wenn es im Controller empfangen wird.

Code: Select all

$r->session()->put ('animal', 'chicken');
dump ('before sending', $r->session()->all());
return redirect()->route('oauth.establishIfsAuth')->with(['url.intended' => $my_route]);
< /code>

php artisan cache:clear
und andere "Turn-it-Off-and-on-on-AN-AN-AN-" -Typübungen
Versuchte sicherzustellen, dass es nicht "doppelte Umleitung" -Szenarien stattfindet (wobei die gebliebenen Werte nach dem ersten Umbau entfernt werden) /> Hat jemand irgendwelche Ideen dafür, was ich falsch mache? < /P.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post