synolia/sylius-admin-oauth-plugin

Sylius 管理员 OAuth 插件。

安装次数: 3,294

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 11

分支: 1

开放问题: 2

类型:sylius-plugin

This package is auto-updated.

Last update: 2024-09-12 08:52:24 UTC


README

License CI - Analysis CI - Sylius Version Total Downloads

Synolia SyliusAdminOauthPlugin

为 Sylius 管理面板添加 OAuth 身份验证。

功能

  • 允许您的管理员用户通过 OAuth 提供商进行订阅和登录
    • Google
    • Microsoft
  • 允许域名连接管理。

要求

安装

  1. 在您的 composer.json 中添加此包及其依赖项

    $ composer require synolia/sylius-admin-oauth-plugin
  2. 在 .env 文件中,使用这些键写入您的 Google 和/或 Microsoft 客户端 ID 和客户端密钥

    SYNOLIA_ADMIN_OAUTH_GOOGLE_CLIENT_ID=
    SYNOLIA_ADMIN_OAUTH_GOOGLE_CLIENT_SECRET=
    
    SYNOLIA_ADMIN_OAUTH_MICROSOFT_CLIENT_ID=
    SYNOLIA_ADMIN_OAUTH_MICROSOFT_CLIENT_SECRET=
  3. 在您的 security.yaml 中,将 OAuth 验证器添加到您的管理员防火墙,并根据您使用的提供程序设置 access_control 路径。 它们必须位于其他路径之上

    security:
      enable_authenticator_manager: true
      firewalls:
        admin:
            custom_authenticators:
                - Synolia\SyliusAdminOauthPlugin\Security\Authenticator\OauthAuthenticator
    
      access_control:
        - { path: "%sylius.security.admin_regex%/connect/google",       role: PUBLIC_ACCESS, requires_channel: https }
        - { path: "%sylius.security.admin_regex%/connect/google/check", role: PUBLIC_ACCESS, requires_channel: https }
    
        - { path: "%sylius.security.admin_regex%/connect/microsoft",       role: PUBLIC_ACCESS, requires_channel: https }
        - { path: "%sylius.security.admin_regex%/connect/microsoft/check", role: PUBLIC_ACCESS, requires_channel: https }
  4. 创建一个 config/routes/synolia_oauth.yaml 来配置插件的路由,并将它们以 'admin' 为前缀

     synolia_oauth:
         resource: '@SynoliaSyliusAdminOauthPlugin/config/routes.yaml'
         prefix: '/%sylius_admin.path_name%'
  5. 创建一个 config/packages/synolia_oauth_config.yaml 来导入所有必需的配置

    imports:
      - { resource: "@SynoliaSyliusAdminOauthPlugin/config/app.yaml" }
  6. 将此 trait 添加到您的 App\Entity\User\AdminUser.php 中

    use Doctrine\ORM\Mapping as ORM;
    use Sylius\Component\Core\Model\AdminUser as BaseAdminUser;
    use Synolia\SyliusAdminOauthPlugin\Entity\User\CustomAdminUserTrait;
    
    class AdminUser extends BaseAdminUser
    {
         use CustomAdminUserTrait;
    }
  7. 将迁移应用到您的数据库

     php bin/console doctrine:migrations:migrate
  8. 第一次安装后,没有配置任何域,因此您必须添加一个域才能使用 OAuth 进行连接。如果您已有管理员用户,请通过管理面板添加一个并授权它。您可以通过菜单中的 OAuth 域管理部分访问它。

不要忘记在 Google Cloud Console 或 Azure Active Directory 中添加您的允许重定向 URI!完整文档在此

现在您可以在管理员登录面板中使用 OAuth 连接到您的帐户!

故障排除

  • 错误 'TOO_MANY_REDIRECT':添加以下两行
    • services.yaml
      parameters:
        router.request_context.scheme: 'https'
    • framework.yaml
    framework:
      trusted_proxies: '127.0.0.1,REMOTE_ADDR'
  • 如果您看不到您的 OAuth 连接按钮,请验证您的 .env 变量,其中指定了您的 client_id 和 client_secret
  • 如果您看到“无法连接,请重试”的消息,请不要忘记在后台办公室中配置您的授权域。

开发

如何贡献

许可

本库受EUPL-1.2 许可的约束。

致谢

Synolia开发。