roadiz/user-bundle

维护者

详细信息

github.com/roadiz/user-bundle

源代码

安装: 174

依赖: 0

建议者: 1

安全: 0

星标: 3

关注者: 2

分支: 0

类型:symfony-bundle

v2.3.28 2024-09-24 13:19 UTC

README

用于 Roadiz v2 的公共用户管理包

Run test status

安装

确保全局已安装 Composer,如 Composer 文档中的安装章节所述。

使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录并执行以下命令

$ composer require roadiz/user-bundle

未使用 Symfony Flex 的应用程序

步骤 1:下载包

打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本

$ composer require roadiz/user-bundle

步骤 2:启用包

然后,通过将其添加到项目 config/bundles.php 文件中注册的包列表来启用包。

// config/bundles.php

return [
    // ...
    \RZ\Roadiz\UserBundle\RoadizUserBundle::class => ['all' => true],
];

配置

  • 复制 API Platform 资源配置文件:./config/api_resources/user.yaml 到您的 Roadiz 项目 api_resource 文件夹。
  • 使用以下内容编辑您的 ./config/packages/framework.yaml 文件
framework:
    rate_limiter:
        user_signup:
            policy: 'token_bucket'
            limit: 5
            rate: { interval: '1 minutes', amount: 3 }
            cache_pool: 'cache.user_signup_limiter'
        password_request:
            policy: 'token_bucket'
            limit: 3
            rate: { interval: '1 minutes', amount: 3 }
            cache_pool: 'cache.password_request_limiter'
        password_reset:
            policy: 'token_bucket'
            limit: 3
            rate: { interval: '1 minutes', amount: 3 }
            cache_pool: 'cache.password_reset_limiter'
  • 使用以下内容编辑您的 ./config/packages/cache.yaml 文件
framework:
    cache:
        pools:
            cache.user_signup_limiter: ~
            cache.password_request_limiter: ~
            cache.password_reset_limiter: ~
  • 使用以下内容编辑您的 ./config/packages/security.yaml 文件
security:
    access_control:
        # Append user routes configuration
        - { path: "^/api/users/signup", methods: [ POST ], roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: "^/api/users/password_request", methods: [ POST ], roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: "^/api/users/password_reset", methods: [ PUT ], roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: "^/api/users", methods: [ GET, PUT, PATCH, POST ], roles: ROLE_USER }
  • 使用以下内容编辑您的 ./.env 文件
USER_PASSWORD_RESET_URL=https://your-public-url.test/reset
USER_VALIDATION_URL=https://your-public-url.test/validate
USER_PASSWORD_RESET_EXPIRES_IN=600
USER_VALIDATION_EXPIRES_IN=3600
  • 更新 CORS 配置,添加额外的头部 Www-Authenticatex-g-recaptcha-response
# config/packages/nelmio_cors.yaml
nelmio_cors:
    defaults:
        # ...
        allow_headers: ['Content-Type', 'Authorization', 'Www-Authenticate', 'x-g-recaptcha-response']
        expose_headers: ['Link', 'Www-Authenticate']

维护命令

  • bin/console users:purge-validation-tokens:删除所有过期的用户验证令牌

贡献

问题 中报告并发送 Pull Requests主 Roadiz 仓库