ventureleap/leap-one-symfony-sdk

该包的最新版本(dev-main)没有可用的许可证信息。

Venture Leap Symfony SDK - 连接到 Leap.ONE API 并轻松进行身份验证

安装次数: 9,159

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 0

公开问题: 0

类型:symfony-bundle

dev-main 2021-12-01 15:03 UTC

README

借助 leap.one PHP SDK 简化在 Symfony 中的开发

安装

  1. 通过以下方式添加包:
composer require ventureleap/leap-one-symfony-sdk dev-main
  1. 将以下变量添加到您的 .env.local 文件中
LEAP_ONE_ENDPOINT_URL='https://api-test.leap1.de:8000'
LEAP_ONE_APP_ID='<your-app-id>'
LEAP_ONE_APP_SECRET='<your-app-id>'
  1. (可选) 添加路由
    leap_one_php_sdk:
        resource: "@LeapOneSymfonySdkBundle/Resources/config/routes.yaml"
        prefix:   /
  1. (可选) 修改您的安全配置文件 这部分要求您已经实现了使用 LEAP.one 用户服务的用户逻辑。
        encoders:
            VentureLeap\LeapOneSymfony\Model\User\User:
                algorithm: auto
        providers:
           user_provider:
              id: leap_one.user_provider
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                pattern: /
                anonymous: true
                lazy: true
                provider: user_provider
                guard:
                   authenticators:
                      - leap_one.login_form_authenticator
                      - leap_one.mfa_authenticator
                   entry_point: leap_one.login_form_authenticator
                logout:
                    path: leap_one_user_logout
        access_control:
           - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
           - { path: ^/mfa-check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
           - { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
           - { path: ^/, roles: ROLE_ADMIN }
  1. (可选) 允许多个用户类型

要允许您的应用程序处理多种类型的用户,您需要以下 3 个步骤。

5.1 您的路由应有一个额外的部分。这应包含您想要进行用户身份验证的路由前缀的逻辑。以下示例演示了如何添加一个名为 user 的新用户类型,该类型将在您的domain.com/user 下可用。

  leap_one_php_sdk_user:
    resource: "@LeapOneSymfonySdkBundle/Resources/config/routes.yaml"
    defaults:
      user_type: 'user'
    prefix:
      user: '/{user_type}'

5.2 为验证器创建新服务

    leap_one_user.user_provider:
        class: VentureLeap\LeapOneSymfonySdk\Services\User\UserProvider
        public: true
        arguments:
            $userType: 'user'

    leap_one_user.login_form_authenticator:
        parent: leap_one.login_form_authenticator
        arguments:
            $loginRoute: 'leap_one_user_login.user'
            $userProvider: '@leap_one_user.user_provider'

    leap_one_user.mfa_authenticator:
        parent: leap_one.mfa_authenticator
        arguments:
            $loginRoute: 'leap_one_user_mfa_check'
            $userProvider: '@leap_one_user.user_provider'

5.3 在安全层中使用定义的服务 将新用户提供者添加到您的 security.yaml

    providers:
        user_provider:
            id: leap_one.user_provider
        user_user_provider:
            id: leap_one_user.user_provider

也将新对应的部分添加到防火墙中,例如。

    user:
        pattern: ^/user
        lazy: true
        anonymous: true
        provider: user_user_provider
        guard:
            authenticators:
                - leap_one_user.login_form_authenticator
                - leap_one_user.mfa_authenticator
            entry_point: leap_one_user.login_form_authenticator
        logout:
            path: leap_one_user_logout

当然,您还需要完成新的 access_control 逻辑,以覆盖新的路由。