咨询 / laravel-butler
Butler 管理您的 Laravel 应用程序的多个 Socialite 身份验证。
Requires
- php: ^7.1||^8.0
- laravel/framework: ^5.7 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- laravel/legacy-factories: ^1.3
- laravel/socialite: ^4.0 || ^5.0
- nesbot/carbon: ^1.21 || ^2.0
Requires (Dev)
- mockery/mockery: ^1.2
- orchestra/database: ^4.0||^5.0||^6.0
- orchestra/testbench: ^4.0||^5.0||^6.0||^7.0
- orchestra/testbench-browser-kit: ^4.0||^5.0||^6.0||^7.0
- phpunit/phpunit: ^8.0
README
Butler 管理您的 Socialite 身份验证。
通过几个简单的步骤,您可以让用户通过多个提供者登录到您的网站。
Butler 设计成与标准的 Laravel 身份验证一起工作,并使用 Socialite 连接到身份验证提供者。
要求
-
设置您的 Socialite 提供者(您可能需要安装额外的 Socialite Providers)。
安装
-
使用 composer 安装 Butler:
composer require konsulting/laravel-butler
-
如果您正在使用 Laravel 5.5,Butler 将自动注册服务提供者和外观。但是,如果您选择不自动注册,或者使用的是更早的版本,请将 Butler 的服务提供者添加到
config/app.php
'providers' => [ // Other service providers... Konsulting\Butler\ButlerServiceProvider::class, ],
- 将 Butler 的外观添加到
config/app.php
'aliases' => [ // Other aliases... 'Butler' => Konsulting\Butler\ButlerFacade::class, ],
- 将 Butler 的路由添加到
app/Providers/RouteServiceProvider.php
class RouteServiceProvider ... public function map() { $this->mapApiRoutes(); $this->mapWebRoutes(); \Butler::routes(); }
- 发布配置并根据您的网站进行调整
php artisan vendor:publish --provider=Konsulting\\Butler\\ButlerServiceProvider --tag=config
在 config/butler.php
中进行调整。添加您希望用于身份验证的可用的提供者 - 这些直接映射到 Socialite 驱动器。发布文件中有示例。
// Other Settings 'providers' => [ 'google' => [ 'name' => 'Google', 'scopes' => [], // define any specific scopes you want to request here 'icon' => 'fa fa-google', 'class' => 'btn-google', ], ... ]
查看配置选项以获取更多信息。
-
可选 在登录页面添加 OAuth 按钮列表和状态反馈。
将以下包含添加到您的登录页面 blade 模板。
@include('butler::status')
@include('butler::list')
配置选项
存在一组小的配置选项。
Butler 驱动器
我们在 Socialite 驱动器周围包装了一个 Butler 驱动器,它添加了使用刷新令牌 refresh()
社会身份的方法。它还将所有常规的 SocialiteProvider 方法代理到原始提供者。
$driver = \Butler::driver(string $providerName); // For a specific social identity, this would be $socialIdentity->provider $driver->refresh($socialIdentity);
安全
由于令牌是短期的,我们目前没有加密检索到的任何令牌。我们很高兴听取对此决定的意见。
如果您发现任何安全问题或有任何担忧,请通过电子邮件 keoghan@klever.co.uk 联系我们,而不是使用问题跟踪器。
贡献
欢迎贡献,并将得到充分认可。我们将通过拉取请求接受贡献。
请
- 使用 PSR-2 编码标准
- 添加测试,如果您不确定如何操作,请提问。
- 记录行为的变化,包括 readme.md。
测试
我们使用 PHPUnit 和出色的 orchestral/testbench
使用 PHPUnit 运行测试: vendor/bin/phpunit