coloredcow / laravel-gsuite
一个用于设置 Google OAuth 和 GSuite Admin SDK 的 Laravel 扩展包
Requires
- php: ^7.1
- doctrine/dbal: ^2.8
- google/apiclient: ^2.2
- google/auth: ^1.3
- laravel/socialite: ^3.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3.0
- phpunit/phpunit: ^7.3
This package is auto-updated.
Last update: 2024-09-27 08:28:50 UTC
README
一个用于设置 Google OAuth 和 GSuite Admin SDK 的 Laravel 扩展包。
安装
您可以使用 composer 安装此包
composer require coloredcow/laravel-gsuite
发布配置
php artisan vendor:publish --provider="ColoredCow\LaravelGSuite\Providers\GSuiteServiceProvider" --tag="config"
设置 Google Oauth
更新您的 .env 文件,包含 Google OAuth 2.0 凭据
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CLIENT_CALLBACK=your_google_callback_url
注意:如果您希望限制用户访问您组织的域名,请将以下内容添加到您的 .env 文件中
GOOGLE_CLIENT_HD=your_domain
在您的 app/Http/Controllers/Auth/LoginController.php
文件中,使用此包的 trait GSuiteLogin
<?php use ColoredCow\LaravelGSuite\Traits\GSuiteLogin; class LoginController extends Controller { use AuthenticatesUsers, GSuiteLogin; // ...
就是这样!前往 your_app_url/auth/google
并使用您的 Google 邮箱登录。
设置 GSuite Admin 服务
在您的 .env
文件中,添加以下凭据
GOOGLE_APPLICATION_CREDENTIALS=your_gsuite_service_account_crendentials
GOOGLE_SERVICE_ACCOUNT_IMPERSONATE=your_gsuite_admin_email
要了解更多关于服务帐户以及获取帐户的步骤,请访问 官方 Google 文档。
注意:确保在创建项目的服务帐户时启用 域范围委托
。
现在,您可以使用此包提供的各种服务。例如,如果您想获取用户详情,您可以使用 GSuiteUserService
门面。
use ColoredCow\LaravelGSuite\Facades\GSuiteUserService; // ... $user = GSuiteUserService::fetch('jon@mycompany.com'); echo $user->getName(); // Jon Snow echo $user->getJoinedOn(); // 2016-12-26 12:15:00 echo $user->getDesignation(); // Lord Commander
启用多租户
如果您的应用程序支持多租户,则需要执行一些额外的步骤。
在您的 config/gsuite.php
中将多租户设置为 true
'multitenancy' => true,
租户连接的默认值为 tenant
。如果您使用不同的名称作为租户连接,请更新 config/gsuite.php
'connections' => [ 'tenant' => 'tenant_connection', ]
由于您将拥有多个租户,并且您可能需要为每个租户不同的 GSuite API 凭据,因此此包将在每个租户数据库中创建一个表。此表将存储所需的 GSuite 凭据。
使用以下命令发布特定于租户的迁移。这将迁移发布到 database/migrations/tenant
目录。
php artisan vendor:publish --provider="ColoredCow\LaravelGSuite\Providers\GSuiteServiceProvider" --tag="multitenancy"
现在,创建您的租户数据库。
注意:如果您已经存在租户,可能需要重新创建这些租户数据库。如果不小心操作,可能会丢失一些数据。
在每个租户数据库中,您需要定义应用程序凭据和服务帐户模拟用户。您可以在多租户实现中添加一个种子器,以便在创建新的租户数据库时运行。
您的 gsuite_configurations
表应如下所示
更多多租户配置
如果您希望为 gsuite_configurations
表使用不同的名称,请更新 config/gsuite.php
'tables' => [ 'tenant' => [ 'gsuite-configurations' => 'your_gsuite_table_name', ] ]
如果您希望覆盖包的 GSuiteConfiguration
模型,创建一个自定义模型,它必须实现 ColoredCow\LaravelGSuite\Contracts\Tenant\GSuiteConfiguration
协议。然后,更新您的 config/gsuite.php
并用新模型替换默认模型。
'models' => [ 'tenant' => [ 'gsuite-configuration' => App\YourModelName::class ] ]