wjbecker / filament-connectify
Filament Connectify - 通过 Laravel Socialite 实现社交登录
Requires
- php: ^8.0
- laravel/socialite: ^5.12
- owenvoke/blade-fontawesome: *
- spatie/laravel-package-tools: ^1.0|^1.13
This package is auto-updated.
Last update: 2024-09-05 17:03:14 UTC
README
通过 Laravel Socialite 为 Filament v3 添加 OAuth2 登录支持
此包扩展了 Laravel Socialite。Socialite 默认支持通过 Facebook、Twitter、LinkedIn、Google、GitHub、GitLab 和 Bitbucket 进行身份验证。
有关如何配置应用程序以使用这些提供者的更多信息,请参阅 Socialite 文档。
通过 Socialite Providers 网站提供许多其他提供者。请参阅每个提供者的文档,以获取有关如何配置应用程序以使用它们的详细信息。
安装
通过 composer 安装包
composer require wjbecker/filament-connectify
发布并迁移迁移文件
php artisan vendor:publish --tag="filament-connectify-migrations php artisan migrate
要使用提供者图标,您可以为 Blade Font Awesome 品牌图标添加
composer require owenvoke/blade-fontawesome
提供者配置
有关更多信息,请参阅 Socialite 文档。
面板配置
将此插件包含在您的面板配置中
use Wjbecker\FilamentConnectify\FilamentConnectifyPlugin; return $panel // ... ->plugins([ // ... Other Plugins FilamentConnectifyPlugin::make() // (required) add providers ->providers([ 'azure' => [ 'label' => 'Continue with Microsoft', 'icon' => 'fab-microsoft', // requires additional package ] ]) // (optional) restrict login callback ->isAllowedCallback(function (\SocialiteProviders\Manager\OAuth2\User $socialiteUser) { $decodedToken = json_decode(base64_decode(str_replace('_', '/', str_replace('-','+',explode('.', $socialiteUser->token)[1])))); return $decodedToken->tid === {{azure_tenant_id}}; }) // (optional) change the user model class ->userModel(\App\Models\User::class) // (optional) change redirect url callback ->redirectUrlCallback(function ($provider) { return 'https://'.tenant('id').'.foo.test'.route(FilamentConnectifyPlugin::get()->getCallbackRoute(), $provider, false); }) ])
示例提供者配置 - Azure Active Directory
首先,您需要参考 Azure Socialite 提供者 的文档。
通常,您会遵循上述链接中提供的提供者文档,但为了演示,我将包括以下步骤。
根据他们的文档,您会通过以下方式安装社区 Azure 提供者:
composer require socialiteproviders/microsoft-azure
然后,您需要配置您的 config/services.php
文件以包括 Azure 提供者的凭证
'azure' => [ 'client_id' => env('AZURE_CLIENT_ID'), 'client_secret' => env('AZURE_CLIENT_SECRET'), 'redirect' => env('AZURE_REDIRECT_URI'), 'tenant' => env('AZURE_TENANT_ID'), 'proxy' => env('PROXY') // optionally ],
此外,您还需要将此提供者的事件监听器添加到您的 app/Providers/EventServiceProvider.php
文件中
protected $listen = [ // ... other listeners \SocialiteProviders\Manager\SocialiteWasCalled::class => [ // ... other providers \SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle', ], ];
最后,不要忘记将所需的环境变量添加到您的 .env
文件中
AZURE_CLIENT_ID= AZURE_CLIENT_SECRET= AZURE_REDIRECT_URI= AZURE_TENANT_ID=
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。