2

Using a custom domain like the example below is not telling Livewire requests to be prefixed with the same subdomain subdomain1 in this example:

    Route::domain('subdomain1.'.env('APP_DOMAIN', 'localhost'))
             ->middleware(['web',.....])
             ->as('app.')
             ->group(base_path('routes/app.php'));

The problem is that the default callback for Livewire fetch endpoint which is /livewire/message/{message} is unfortunately using the root domain only and isn't based on where it has been called from. In my case from the subdomain1 and as you can guess this means a different storage of the session bag. It's a different session in the first place.

So storing in session for the sub-domain is not the same as storing in the session itself. Nevertheless, there are other customizations which I need in order to encapsulate Livewire usage based on each sub-domain, image I have a multi-tenancy based project and I need such segregation.

Suhail Kawsara
  • 466
  • 3
  • 11

1 Answers1

4

After some googling and based on a solution in Livewire forums:

I tailored it to be suitable sub-domains usage

  • Step 1, added new route in routes/app.php:
use Livewire\Controllers\HttpConnectionHandler;

// .....
// Notice that this root route has to be the same as the one in step2:
Route::get('/', [AppController::class, 'index'])->name('app.index');
// .....

Route::post('livewire/message/{name}', [HttpConnectionHandler::class, '__invoke']);
  • Step2, In Blade just after @livewireScripts:
@livewireScripts
<script>
    window.livewire_app_url = '{{route('app.index')}}';
</script>

And in case you are wondering about the config of Livewire, there is no need to change it. Just leave it as it is; null:

'asset_url'  => null,
Suhail Kawsara
  • 466
  • 3
  • 11