咨询/laravel-butler

Butler 管理您的 Laravel 应用程序的多个 Socialite 身份验证。

0.11.0 2022-10-14 11:19 UTC

README

Butler 管理您的 Socialite 身份验证。

通过几个简单的步骤,您可以让用户通过多个提供者登录到您的网站。

Butler 设计成与标准的 Laravel 身份验证一起工作,并使用 Socialite 连接到身份验证提供者。

要求

安装

  • 使用 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