Skip to content

Commit 30189f2

Browse files
MasterZydraLaurinStapfJulianGlueck
authored
Skip CSRF on embed route to support sessions (#50)
Fixes #33 and #39 Co-authored-by: Laurin Stapf <72888948+LaurinStapf@users.noreply.github.com> Co-authored-by: J. Glück <65236355+JGlueck-WIKA@users.noreply.github.com>
1 parent dce6efe commit 30189f2

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

routes/api.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

33
use WireElements\WireExtender\Http\Controllers\EmbedController;
4-
use WireElements\WireExtender\Http\Controllers\InjectController;
54

6-
Route::any('livewire/embed', EmbedController::class);
5+
Route::any('livewire/embed', EmbedController::class)
6+
->name('wire-extender.embed');

src/Http/Middlewares/IgnoreForWireExtender.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ trait IgnoreForWireExtender
1919
*/
2020
public function handle($request, Closure $next)
2121
{
22+
// Embed route must be skipped, otherwise it will not work with sessions
23+
if ($request->routeIs('wire-extender.embed')) {
24+
return $next($request);
25+
}
26+
2227
// We only care about requests from an embedded component
2328
if (! $this->isLivewireUpdateRequest($request)) {
2429
return parent::handle($request, $next);
@@ -41,7 +46,7 @@ public function handle($request, Closure $next)
4146
private function isLivewireUpdateRequest($request): bool
4247
{
4348
return $request->method() === 'POST' &&
44-
app(LivewireManager::class)->getUpdateUri() === $request->getRequestUri() &&
49+
$request->getRequestUri() === app(LivewireManager::class)->getUpdateUri() &&
4550
$request->hasHeader('X-Wire-Extender') &&
4651
$request->hasHeader('X-Livewire');
4752
}

0 commit comments

Comments
 (0)