flipboxfactory / patron
Craft CMS 的 OAuth2 客户端
Requires
- php: >=8.0
- craftcms/cms: ~4.0
- flipboxfactory/craft-ember: ^3.0
- league/oauth2-client: ^2.4
- league/oauth2-facebook: ^2.0
- league/oauth2-github: ^2.0
- league/oauth2-google: ^2.0
- league/oauth2-instagram: ^2.0
- league/oauth2-linkedin: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.2
This package is auto-updated.
Last update: 2024-09-14 04:08:44 UTC
README
Patron 是一个 OAuth2 客户端管理器;提供易于使用的界面来管理 OAuth2 提供者和令牌。
要求
此插件需要 Craft CMS 3.0 或更高版本。
安装
选择以下方法之一将 Patron 添加到您的项目中
-
Composer
只需从您的项目根目录运行以下命令
composer require flipboxfactory/patron
-
Craft CMS 插件商店
一旦插件被包含到您的项目中,导航到控制面板,转到设置 → 插件,然后点击 Patron 的“安装”按钮。
功能
Patron 为 The PHP League 的 OAuth2 客户端包 提供了 Craft CMS 管理员界面。其他功能包括
- 项目配置兼容性
- 提供者锁定(针对插件开发者)
- 内置提供者:Facebook、GitHub、Google、LinkedIn、Instagram
- 注册您自己的 OAuth2 提供者
模板
craft.patron
模板变量提供了对整个 Patron 插件的访问。然而,有两个值得突出的有用标签
检索提供者
{% set providerQuery = craft.patron.providers %} {% set provider = providerQuery.handle('providerHandle').one() %}
检索令牌
{% set tokenQuery = craft.patron.tokens %} {% set token = tokenQuery.provider('providerHandle').one() %} {# a token associated to a provider #}
截图
设置
可以通过插件配置文件 config/patron.php
覆盖设置(包括提供者配置)
建议通过环境变量访问敏感数据(例如客户端密钥)
[ 'providerHandle' => [ 'clientId' => getenv('SOME_PROVIDER_CLIENT_ID'), 'clientSecret' => getenv('SOME_PROVIDER_CLIENT_SECRET'), ], 'anotherProviderHandle' => [ 'clientId' => getenv('SOME_OTHER_PROVIDER_CLIENT_ID'), 'clientSecret' => getenv('SOME_OTHER_PROVIDER_CLIENT_SECRET'), ] ]
第三方提供者
通过以下事件向 Patron 添加附加提供者
-
使用 The PHP League OAuth2 提供者 的完全限定类名注册一个兼容的提供者。PHP League 有一个 详尽的列表,这些由社区贡献。
\yii\base\Event::on( \flipbox\patron\cp\Cp::class, \flipbox\patron\events\RegisterProviders::REGISTER_PROVIDERS, function (\flipbox\patron\events\RegisterProviders $event) { $event->providers[] = '\your\fully\qualified\provider\class\name'; // Ex: \Stevenmaguire\OAuth2\Client\Provider\Salesforce::class } );
-
[可选] 为提供者注册设置界面。如果您的提供者可以配置,设置界面将允许通过 Craft CP 进行配置输入。设置界面将在步骤 1 中的相同提供者类中注册。
\yii\base\Event::on( '\your\fully\qualified\provider\class\name', // Ex: \Stevenmaguire\OAuth2\Client\Provider\Salesforce::class \flipbox\patron\events\RegisterProviderSettings::REGISTER_SETTINGS, function (\flipbox\patron\events\RegisterProviderSettings $event) { $event->class = '\your\fully\qualified\settings\class\name'; // Ex: \flipbox\patron\salesforce\settings\SalesforceSettings::class } );
-
[可选] 为提供者注册更多信息。在整个 Craft CP 中,我们使用提供者的
name
和icon
。注册以下内容以指定这些值\yii\base\Event::on( \flipbox\patron\cp\Cp::class, \flipbox\patron\events\RegisterProviderInfo::REGISTER_INFO, function (\flipbox\patron\events\RegisterProviderInfo $event) { $event->info['\your\fully\qualified\provider\class\name] = [ 'name' => 'Your Provider', 'icon' => '/path/to/icon.svg' // Ex: '@vendor/flipboxfactory/patron-salesforce/icons/salesforce.svg' ]; } );
例如,以下是一些第三方提供者包供参考
提供者锁定
插件可以将提供者“锁定”。因此,只有锁定提供者的插件才能删除它。这在另一个插件使用Patron来管理其OAuth2连接时非常有用,这可能并不明显。
```php
/** @var \flipbox\patron\records\Provider $provider */
/** @var \craft\base\PluginInterface $yourPlugin */
$provider->saveAndLock($yourPlugin);
```
贡献
请参阅CONTRIBUTING以获取详细信息。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。