diff --git a/navigation.php b/navigation.php index 75dded2..1f1befb 100644 --- a/navigation.php +++ b/navigation.php @@ -206,6 +206,7 @@ return [ 'Telescope' => 'integrations/telescope', 'Livewire' => 'integrations/livewire', 'Orchid' => 'integrations/orchid', + 'Sanctum' => 'integrations/sanctum', ], ], 'Console commands' => 'console-commands', diff --git a/source/docs/v3/integrating.blade.md b/source/docs/v3/integrating.blade.md index 38446a9..1f3d9dc 100644 --- a/source/docs/v3/integrating.blade.md +++ b/source/docs/v3/integrating.blade.md @@ -15,3 +15,4 @@ If you're using the [automatic mode]({{ $page->link('automatic-mode') }}) & [mul - [Laravel Nova]({{ $page->link('integrations/nova') }}) - [Laravel Telescope]({{ $page->link('integrations/telescope') }}) - [Livewire]({{ $page->link('integrations/livewire') }}) +- [Laravel Sanctum]({{ $page->link('integrations/sanctum') }}) diff --git a/source/docs/v3/integrations/sanctum.blade.md b/source/docs/v3/integrations/sanctum.blade.md new file mode 100644 index 0000000..d986dca --- /dev/null +++ b/source/docs/v3/integrations/sanctum.blade.md @@ -0,0 +1,22 @@ +--- +title: Laravel Sanctum integration +extends: _layouts.documentation +section: content +--- + +# Laravel Sanctum {#sanctum} + +> Note that the `sanctum` auth guard can't be used with [user impersonation]({{ $page->link('features/user-impersonation') }}) because user impersonation supports stateful guards only. + +If you need to use the `csrf-cookie` route that Sanctum provides, you have to set up [universal routes]({{ $page->link('features/universal-routes') }}) in your app. Then, add `'routes' => false` to the `sanctum.php` config. + +Finally, add the following code to `routes/tenant.php` (use tenancy initialization middleware of your choice): + +```php +Route::group(['prefix' => config('sanctum.prefix', 'sanctum')], static function () { + Route::get('/csrf-cookie',[\Laravel\Sanctum\Http\Controllers\CsrfCookieController::class, 'show']) + // Use tenancy initialization middleware of your choice + ->middleware(['universal', 'web', \Stancl\Tenancy\Middleware\InitializeTenancyByDomain::class]) + ->name('sanctum.csrf-cookie'); +}); +```