Craft CMS 的 OAuth2 客户端

安装: 9,770

依赖: 3

推荐: 0

安全性: 0

星标: 3

关注者: 4

分支: 2

开放问题: 3

类型:craft-plugin

3.0.0 2023-02-14 00:34 UTC

README

Join the chat at https://gitter.im/flipboxfactory/patron Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

Patron 是一个 OAuth2 客户端管理器;提供易于使用的界面来管理 OAuth2 提供者和令牌。

Screenshot

要求

此插件需要 Craft CMS 3.0 或更高版本。

安装

选择以下方法之一将 Patron 添加到您的项目中

  1. Composer

    只需从您的项目根目录运行以下命令

    composer require flipboxfactory/patron
    
  2. Craft CMS 插件商店

    在您的 Craft CMS 项目管理面板中,导航到 '插件商店' 并搜索 'Patron'。安装只需点击一下按钮。

一旦插件被包含到您的项目中,导航到控制面板,转到设置 → 插件,然后点击 Patron 的“安装”按钮。

功能

PatronThe PHP League 的 OAuth2 客户端包 提供了 Craft CMS 管理员界面。其他功能包括

模板

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 #}

截图

Proviers

Update

Tokens

Settings

设置

可以通过插件配置文件 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 添加附加提供者

  1. 使用 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
        }
    );
  2. [可选] 为提供者注册设置界面。如果您的提供者可以配置,设置界面将允许通过 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
        }
    );
  3. [可选] 为提供者注册更多信息。在整个 Craft CP 中,我们使用提供者的 nameicon。注册以下内容以指定这些值

    \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)。请参阅许可证文件以获取更多信息。