Laravel Sanctum integration
Laravel Sanctum works with Tenancy out of the box, with the exception of the sanctum.csrf-cookie route. You can make some small changes to make the route work.
Making the csrf-cookie route work in the tenant app
Section titled “Making the csrf-cookie route work in the tenant app”To make the sanctum.csrf-cookie route work in the tenant app, do the following:
- Add
'routes' => falseto thesanctum.phpconfig - Publish the Sanctum migrations and move them to
migrations/tenant - Make Sanctum not use its migrations in the central app by adding
Sanctum::ignoreMigrations()to theregister()method in yourAuthServiceProvider - Add the following code to
routes/tenant.phpto override the originalsanctum.csrf-cookieroute:
Route::group(['prefix' => config('sanctum.prefix', 'sanctum')], static function () { Route::get('/csrf-cookie', [CsrfCookieController::class, 'show']) ->middleware([ 'web', InitializeTenancyByDomain::class // Use tenancy initialization middleware of your choice ])->name('sanctum.csrf-cookie');});Making the csrf-cookie route work both in the central and the tenant app
Section titled “Making the csrf-cookie route work both in the central and the tenant app”To use the sanctum.csrf-cookie route in both the central and the tenant apps:
- Follow the steps in the previous section (“Sanctum’s csrf-cookie route in the tenant app”)
- Remove
Sanctum::ignoreMigrations()from yourAuthServiceProvider’sregister()method - Remove
'routes' => falsefrom thesanctum.phpconfig - Add the
'universal'middleware to thesanctum.csrf-cookieroute in yourroutes/tenant.php