bannister / user-bundle
一个基于Symfony的用户包,用于用户注册、激活、认证和密码重置。
Requires
- php: ^8.1
- sensio/framework-extra-bundle: ^5.0
- symfony/asset: ^5.0
- symfony/flex: ^1.4
- symfony/form: ^5.0
- symfony/polyfill-apcu: ^1.0
- symfony/security-bundle: ^5.0
- symfony/swiftmailer-bundle: ^3.4
- symfony/templating: ^5.0
- symfony/translation: ^5.0
- symfony/validator: ^5.0
- symfony/yaml: ^5.0
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.twig
和 templates/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 |