mirror of
https://github.com/stancl/tenancy-docs.git
synced 2025-12-12 18:24:03 +00:00
Passport integration documented
This commit is contained in:
parent
4859a9b7af
commit
97017dd522
3 changed files with 43 additions and 1 deletions
|
|
@ -105,6 +105,7 @@ return [
|
||||||
'children' => [
|
'children' => [
|
||||||
'Spatie Packages' => 'spatie',
|
'Spatie Packages' => 'spatie',
|
||||||
'Horizon' => 'horizon',
|
'Horizon' => 'horizon',
|
||||||
|
'Passport' => 'passport',
|
||||||
'Nova' => 'nova',
|
'Nova' => 'nova',
|
||||||
'Telescope' => 'telescope',
|
'Telescope' => 'telescope',
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ section: content
|
||||||
|
|
||||||
# Nova Integration {#nova-integration}
|
# Nova Integration {#nova-integration}
|
||||||
|
|
||||||
To make Nova part of your tenant application, do the following:
|
To use Nova inside of the tenant part of your application, do the following:
|
||||||
- Publish the Nova migrations and move them to the `database/migrations/tenant` directory.
|
- Publish the Nova migrations and move them to the `database/migrations/tenant` directory.
|
||||||
```none
|
```none
|
||||||
php artisan vendor:publish --tag=nova-migrations
|
php artisan vendor:publish --tag=nova-migrations
|
||||||
|
|
|
||||||
41
docs/source/v2/passport.blade.md
Normal file
41
docs/source/v2/passport.blade.md
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
---
|
||||||
|
title: Passport Integration
|
||||||
|
description: Passport Integration
|
||||||
|
extends: _layouts.documentation
|
||||||
|
section: content
|
||||||
|
---
|
||||||
|
|
||||||
|
# Passport Integration {#passport-integration}
|
||||||
|
|
||||||
|
> If you just want to write an SPA, but don't need an API for some other use (e.g. mobile app), you can avoid **a lot** of the complexity of writing SPAs by using [Inertia.js](https://inertiajs.com).
|
||||||
|
|
||||||
|
To use Passport inside the tenant part of your application, you may do the following.
|
||||||
|
|
||||||
|
- Add this to the `register` method in your `AppServiceProvider`:
|
||||||
|
```php
|
||||||
|
Passport::ignoreMigrations();
|
||||||
|
Passport::routes(null, ['middleware' => 'tenancy']);
|
||||||
|
```
|
||||||
|
- `php artisan vendor:publish --tag=passport-migrations` & move to `database/migrations/tenant/` directory
|
||||||
|
|
||||||
|
## Shared keys
|
||||||
|
|
||||||
|
If you want to use the same keypair for all tenants, do the following.
|
||||||
|
|
||||||
|
- Don't use `passport:install`, use just `passport:keys`. The install command creates keys & two clients. Instead of creating clients centrally, create `Client`s manually in your [tenant database seeder]({{ $page->link('configuration/#seed-after-migration') }}).
|
||||||
|
|
||||||
|
## Tenant-specific keys
|
||||||
|
|
||||||
|
If you want to use a unique keypair for each tenant, do the following. (Note: The security benefit of doing this isn't probably that big, since you're likely already using the same `APP_KEY` for all tenants.)
|
||||||
|
|
||||||
|
There are multiple ways you can store & load tenant keys, but the most straightforward way is to store the keys in the [Tenant Storage]({{ $page->link('tenant-storage') }}) and load them into the `passport` configuration using the [Tenant Config]({{ $page->link('features/tenant-config') }}) feature:
|
||||||
|
- Uncomment the `TenantConfig` line in your `tenancy.features` config
|
||||||
|
- Add these keys to your `tenancy.storage_to_config_map` config:
|
||||||
|
```php
|
||||||
|
'storage_to_config_map' => [
|
||||||
|
'passport_public_key' => 'passport.public_key',
|
||||||
|
'passport_private_key' => 'passport.private_key',
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
And again, you need to create clients in your tenant database seeding process.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue