bannister/user-bundle

一个基于Symfony的用户包,用于用户注册、激活、认证和密码重置。

安装: 307

依赖者: 0

建议者: 0

安全: 0

星标: 0

分支: 0

类型:symfony-bundle

v2.0.0 2023-03-20 13:48 UTC

This package is auto-updated.

Last update: 2024-09-20 17:06:05 UTC


README

关于

版本

2.0.0

支持状态

Bannister User Bundle 已停止积极开发,目前仅维护几个内部项目,直到其过时。

描述

Bannister User Bundle 是一个基于Symfony的应用程序的用户包。

您只需付出最小的努力,它就提供了一个简单的用户注册、激活、登录和密码重置的实现。然而,这个包非常灵活,可以轻松满足您所有与用户相关的需求。

技术要求

Bannister User Bundle 需要

  • PHP 7.2+ 或 8.0+
  • Symfony 4.3+
  • 一个有效的Swiftmailer配置

安装

步骤 1: Composer

首先打开您的命令行,然后在您的项目中运行以下命令

composer require bannister/user-bundle:^1.1.0

步骤 2: 启用包

如果您使用Symfony Flex,此步骤在安装包时自动执行。如果您不使用,请将以下内容添加到您的 config/bundles.php 配置文件中。

<?php

// config/bundles.php

return [
    // ...
    Bannister\UserBundle\BannisterUserBundle::class => ['all' => true],
];

步骤 3: 路由

然后,通过将以下配置添加到您的 config/routes.yaml 文件中来导入包的路由。

# config/routes.yaml

bannister_user:
    resource: "@BannisterUserBundle/Resources/config/routes.yaml"

步骤 4: 安全配置

为了正常运行,Bannister User Bundle 需要您稍微调整应用程序的安全设置。对于密码加密,您需要设置一个编码器,而对于登录/登出过程,您需要一个用户提供者。

实现这一点很简单,只需确保下面的配置包含在您的自己的 config/packages/security.yaml 中。底部的 access_control 是可选的,但它允许匿名访问 Bannister User Bundle 的页面,并强制应用程序其余部分进行认证。

# config/packages/security.yaml

security:
    encoders:
        App\Entity\User: auto
    providers:
        bannisterUserBundle:
            entity: { class: App\Entity\User, property: email }
    firewalls:
        main:
            anonymous: true
            form_login:
                provider: bannisterUserBundle
                csrf_token_generator: security.csrf.token_manager
                login_path: bannister_user_login
                check_path: bannister_user_login
                default_target_path: index
                username_parameter: _email
            logout:
                path: /logout
                target: /login
            user_checker: bannisterUserChecker


    access_control:
        - { path: ^/login$,                     role: [IS_AUTHENTICATED_ANONYMOUSLY] }
        - { path: ^/password-reset/request$,    role: [IS_AUTHENTICATED_ANONYMOUSLY] }
        - { path: ^/password-reset/reset/*,     role: [IS_AUTHENTICATED_ANONYMOUSLY] }
        - { path: ^/register$,                  role: [IS_AUTHENTICATED_ANONYMOUSLY] }
        - { path: ^/activate-user/activate/*,   role: [IS_AUTHENTICATED_ANONYMOUSLY] }
        - { path: ^/,                           role: [IS_AUTHENTICATED_FULLY] }

步骤 5: 基础模板

Bannister User Bundle 的Twig模板使用您的基模板 templates/base.html.twigtemplates/baseEmail.html.twig

Symfony自动为任何新项目设置第一个模板,但您必须自己添加第二个模板。一旦这两个模板都存在,请确保您定义了一个 {% block bannisterUserBundle %}{% endblock %} 块,以允许包在内部渲染其模板。

步骤 6: 用户实体

通过添加自己的 User 实体并从包的 BaseUser 类扩展它来完成安装过程,如下所示。不要忘记在您的数据库中创建表!

<?php

// Entity/User.php

namespace App\Entity;

use Bannister\UserBundle\Entity\BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    // TODO: Add your own logic here.
}

步骤 7: 配置

通过在 config/packages/bannister_user.yaml 中为该包创建一个配置文件并复制从 配置参考 中的默认配置来完成包的设置。

文档

有关进一步说明或使用 Bannister User Bundle 设置用户管理的帮助,请参阅 本包的文档

有关 packages/config/security.yaml 配置的更多信息,请参阅Symfony框架文档。

作者

姓名职能联系方式
Tom Peters后端开发者Tom@3Fiftynine.nl