shonen / genesis
使用passport和graphql为多租户项目的基本设置
dev-master
2020-10-15 21:20 UTC
Requires
- laravel/framework: ^7.0
- laravel/passport: ^9.3
- laravel/ui: ^2.1
- mll-lab/laravel-graphql-playground: ^2.3
- nuwave/lighthouse: ^4.16
- stancl/tenancy: ^3.1
This package is auto-updated.
Last update: 2024-09-16 06:13:19 UTC
README
使用passport和graphql为多租户项目的基本设置
依赖
- laravel/passport : "^9.3"
- laravel/framework: "^7.0",
- laravel/ui: "^2.1",
- mll-lab/laravel-graphql-playground: "^2.3",
- nuwave/lighthouse: "^4.16",
- stancl/tenancy: "^3.1"
安装
composer require shonen/genesis
快速入门指南
要发布所有文件,请运行以下命令
php artisan genesis:public
然后,您需要在您的 config/app.php
文件中包含提供者
'providers' => [ ..., App\Providers\SchemaLighthouseServiceProvider::class, App\Providers\TenancyServiceProvider::class, ]
之后,您需要在 app/Http/Kernel.php
文件中注册passport的通用路由
protected $middlewareGroups = [ ... , 'universal' => [], ];
此外,您还需要在 config/auth.php
文件中添加您的守卫
'guards' => [ ... 'api' => [ //central 'driver' => 'passport', 'provider' => 'users', 'hash' => false, ], 'tenant' => [ 'driver' => 'passport', 'provider' => 'tenantUsers', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\Central\User::class, ], 'tenantUsers' => [ 'driver' => 'eloquent', 'model' => App\Models\Tenant\User::class, ] ],
进一步地,您需要在 app/Providers/AppServiceProvider
文件中添加
use App\Models\Central\Tenant; use App\Observers\Central\TenantObserver; use Laravel\Passport\Passport; use Laravel\Passport\Console\ClientCommand; use Laravel\Passport\Console\InstallCommand; use Laravel\Passport\Console\KeysCommand; ... public function register() { Passport::ignoreMigrations(); Passport::routes(null, ['middleware' => 'universal']); } public function boot() { Tenant::observe(TenantObserver::class); $this->commands([ InstallCommand::class, ClientCommand::class, KeysCommand::class, ]); }
最后,您需要在 config.tenancy.php
文件中更改您的中心域名
'central_domains' => [ 'test', // your central domain here... ],