etsvthor/laravel-bifrost-bridge
最新稳定版本:1.4.0
Composer 安装命令:
composer require etsvthor/laravel-bifrost-bridge
包简介
Connect a laravel application with the Bifrost oauth2 server
README 文档
README
Connect a laravel application with the Bifrost
Installation
First, install spatie/laravel-permission, follow their installation guide
You can then install the package via composer:
composer require etsvthor/laravel-bifrost-bridge
You can publish the config file of bifrost and the underlying spatie permissions config+migrations with:
php artisan vendor:publish --provider="EtsvThor\\BifrostBridge\\BifrostBridgeServiceProvider" --tag="bifrost-config"
- Ensure the
usershas aoauth_user_idandemail_verified_atcolumn. - In the
Usermodel, castemail_verified_attodatetimeand add theHasRolestrait. - (only laravel <11) Please add
'webhooks/bifrost'to the CSRF exceptions inApp\Http\Middleware\VerifyCsrfTokenclass
Environment
Add the following to your .env file and fill them in:
# Required configuration BIFROST_ENABLED=true BIFROST_CLIENT_ID= BIFROST_CLIENT_SECRET= BIFROST_AUTH_PUSH_KEY= # Optional configuration with its defaults BIFROST_REDIRECT_URL="/login/callback" BIFROST_HOST="https://bifrost.thor.edu" BIFROST_ROUTE_PREFIX=
Configuration
In the configuration file, one can specify some thing about the user model, but have some sensible defaults
See config/bifrost.php for all options.
Make sure to seed all required roles, otherwise they will not sync
Resolvers
The User and Role model can be resolved using a custom resolver
use Spatie\Permission\Models\Role; use Illuminate\Database\Eloquent\Model as EloquentModel; // Default behaviour BifrostBridge::resolveUserClassUsing(function(/* auto injection works here */): EloquentModel { return app(config('bifrost.user.model', 'App\\Models\\User')); }); // Default behaviour BifrostBridge::resolveRoleClassUsing(function(/* auto injection works here */): Role { return app(PermissionRegistrar::class)->getRoleClass(); }); // Disabled role sync BifrostBridge::resolveRoleClassUsing(fn() => null); // Override the way a user is resolved BifrostBridge::resolveAndUpdateUserUsing(function(/* auto injection works here */, BifrostUserData $data): ?EloquentModel { // Model should implement \Illuminate\Contracts\Auth\Authenticatable return null; // when null is returned, the user is not logged in })
CSRF (laravel <11 only)
Don't forget to add 'webhooks/bifrost' to the $except array in App\Http\Middleware\VerifyCsrfToken.php.
统计信息
- 总下载量: 3.25k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-12-19