irongate / chief-base
v0.34.1
2022-07-25 19:14 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4
- laracasts/utilities: ^3.2
- laravel/framework: ^9.5
- laravel/helpers: ^1.5
- laravel/passport: ^10.3
- laravel/socialite: ^5.5
- mll-lab/graphql-php-scalars: ^5.4
- nuwave/lighthouse: ^5.45.1
- paragonie/certainty: ^2.8
- pusher/pusher-php-server: ^7.0
- sentry/sentry-laravel: ^2.11
- stayallive/laravel-eloquent-observable: ^1.0
- stayallive/laravel-eloquent-uuid: ^1.0
- stayallive/laravel-passport-memoized: ^1.0
- tuupola/base62: ^2.1
Requires (Dev)
- friendsofphp/php-cs-fixer: 3.8.*
- dev-develop
- v0.34.1
- v0.34.0
- v0.33.3
- v0.33.2
- v0.33.1
- v0.33.0
- v0.32.8
- v0.32.7
- v0.32.6
- v0.32.5
- v0.32.4
- v0.32.3
- v0.32.2
- v0.32.1
- v0.32.0
- v0.31.2
- v0.31.1
- v0.31.0
- v0.30.10
- v0.30.9
- v0.30.8
- v0.30.7
- v0.30.6
- v0.30.5
- v0.30.4
- v0.30.3
- v0.30.2
- v0.30.1
- v0.30.0
- v0.29.4
- v0.29.3
- v0.29.2
- v0.29.1
- v0.29.0
- v0.28.9
- v0.28.8
- v0.28.7
- v0.28.6
- v0.28.5
- v0.28.4
- v0.28.3
- v0.28.2
- v0.28.1
- v0.28.0
- v0.27.2
- v0.27.1
- v0.27.0
- v0.26.1
- v0.26.0
- v0.25.10
- v0.25.9
- v0.25.8
- v0.25.7
- v0.25.6
- v0.25.5
- v0.25.4
- v0.25.3
- v0.25.2
- v0.25.1
- v0.25.0
- v0.24.1
- v0.24.0
- v0.23.2
- v0.23.1
- v0.23.0
- 0.22.x-dev
- v0.22.9
- v0.22.8
- v0.22.7
- v0.22.6
- v0.22.5
- v0.22.4
- v0.22.3
- v0.22.2
- v0.22.1
- v0.22.0
- v0.21.0
- v0.20.2
- v0.20.1
- v0.20.0
- v0.19.0
- v0.18.2
- v0.18.1
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.3
- v0.14.2
- v0.14.1
- v0.14.0
- v0.13.3
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.0
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.21
- v0.8.20
- v0.8.19
- v0.8.18
- v0.8.17
- v0.8.16
- v0.8.15
- v0.8.14
- v0.8.13
- v0.8.12
- v0.8.11
- v0.8.10
- v0.8.9
- v0.8.8
- v0.8.7
- v0.8.6
- v0.8.5
- v0.8.4
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.0
- dev-master
- dev-dependabot/github_actions/shivammathur/setup-php-2.21.0
- dev-dependabot/composer/friendsofphp/php-cs-fixer-3.8.staror-3.9.star
- dev-dependabot/github_actions/shivammathur/cache-extensions-1.8.0
This package is auto-updated.
Last update: 2022-07-25 19:15:47 UTC
README
用于构建Chief Tools的基础功能和辅助工具。
配置
- 通过 Account Chief(Socialite)进行认证
- 使用 Laravel Passport 进行API访问
- 使用 Sentry 客户端
- 使用基于基本模式和标量的 Lighthouse GraphQL
- 受会话保护的端点
/api/graphql/web
- 受会话保护的(GraphiQL)游乐场
/api/playground
- OAuth(Passport)受保护的端点
/api/graphql
- 受会话保护的端点
- 账户页面以显示个人资料信息和偏好设置
- 基本API文档和Passport个人访问令牌管理
- 重定向到Chief Tools主页的
/contact
、/privacy
、/terms
- Chief Tools webhook处理器,当用户账户关闭或更新时进行通知
- 健康检查队列任务每分钟ping
QUEUE_MONITOR_URL
,使用默认队列(当QUEUE_MONITOR_URL
为空或未设置时禁用) - 登录事件监听器用于更新
users
表上的last_login
列
提供
中间件
IronGate\Chief\Middleware\AuthenticateChief
验证请求是否来自 Chief Tools
需要将services.chief.webhook_secret
配置设置为随机字符串IronGate\Chief\Middleware\AutoAuthenticate
使用api
和web
守卫,并设置第一个认证的守卫IronGate\Chief\Middleware\ForceSecure
确保请求是通过https://
进行的IronGate\Chief\Middleware\MoveAccessTokenFromURLToHeader
将访问令牌从access_token
GET参数移动到Authorization
头中IronGate\Chief\Middleware\SecurityHeaders
添加一组默认的安全头,可以通过在应用配置中设置chief.response.securityheaders
(数组)进行配置IronGate\Chief\Middleware\TrustProxiesOnVapor
配置fideloper/proxy
在 Laravel Vapor 上使用
验证规则
IronGate\Chief\Rules\UUID
验证输入值是否为UUIDv4
辅助工具
active($whitelist = null, $blacklist = null, $active = 'active', $inactive = '')
基于白名单获取活动状态。用于指示活动菜单timezones(): array
返回所有时区的键值列表validate($fields, $rules): bool
根据规则验证字段。例如validate($id, new \IronGate\Chief\Rules\UUID)
latest_ca_bundle_file_path(): string
获取最新CA包文件的路径,使用Certainty作为底层
安装
首先引入包
composer require irongate/chief
发布配置文件和可选迁移
php artisan vendor:publish --tag=chief-config
# php artisan vendor:publish --tag=chief-migrations
运行应用程序迁移以创建用户表
php artisan migrate
将首席服务添加到 config/services.php
<?php return [ 'chief' => [ 'client_id' => env('CHIEF_CLIENT_ID'), 'client_secret' => env('CHIEF_CLIENT_SECRET'), 'webhook_secret' => env('CHIEF_SECRET'), 'base_url' => env('CHIEF_BASE_URL', 'https://account.chief.app'), 'verify' => env('CHIEF_VERIFY', true), 'redirect' => '/login/callback', ], ];
这就完成了,你应该能够对Account Chief进行身份验证。
GraphQL API
您需要在您的项目中创建一个包含以下内容的 routes/graphql/schema.graphql
#import ../../vendor/irongate/chief/routes/graphql/schema.graphql
您可以在之后向模式中添加任何内容,例如
#import ../../vendor/irongate/chief/routes/graphql/schema.graphql #import ./types/*.graphql #import ./queries/*.graphql
请注意,User
类型已经提供,因此如果您想添加字段,则需要扩展它。
type OfType implements Entity { id: ID! } extend type User { relation: [OfType!]! @hasMany(type: "paginator") }