plumtreesystems/user-bundle

这是一个Symfony扩展包,它扩展了symfony用户,但没有添加太多不必要的功能。

安装次数: 1,116

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放性问题: 3

类型:symfony-bundle

0.2.4 2020-03-26 11:10 UTC

README

这是一个Symfony扩展包,它扩展了symfony用户,但没有添加太多不必要的功能。

安装

步骤 1: 下载Bundle

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

$ composer require plumtreesystems/user-bundle

此命令需要您全局安装Composer,如Composer文档中的安装章节所述。

步骤 2: 启用Bundle

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

<?php
// bundles.php

// ...
return [
    //...
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    //...
    PlumTreeSystems\UserBundle\PlumTreeSystemsUserBundle::class => ['all' => true],
    //...
];

步骤 3: 创建并导入配置

为Bundle创建配置

#config/packages/pts_user_bundle.yaml

plum_tree_systems_user:
    user_class: <classname of the class that extends one of the abstract classes>

导入路由

#config/routes.yaml
plum_tree_systems_user:
    resource: "@PlumTreeSystemsUserBundle/Resources/config/routes/securityRoutes.yml"
    prefix:   /

基本用法

步骤 1: 创建用户实体

创建一个用户实体,它扩展了现有的抽象(TokenUser|User...)实体之一。

// App/Entity/User.php
namespace App\Entity;

use PlumTreeSystems\UserBundle\Entity\User as PTSUser;

class User extends PTSUser {
    /...
}

步骤 2: 在配置中引用类名

将此用户类添加到配置文件config/packages/pts_user_bundle.yaml

#config/packages/pts_user_bundle.yaml

plum_tree_systems_user:
    user_class: 'App\Entity\User'

步骤 3: 编辑安全配置

添加安全提供者和编码器

#config/packages/security.yaml

security:
    #...
    providers:
        ptsuser:
            id: pts_user.provider
    #...
    encoders:
        App\Entity\User: bcrypt
    # optionally add the user checker to the firewalls where you will be using the authentication to handle disabled users
    firewalls:
    #...
        main:
    #...
            user_checker: pts_user.security.checker
    #...

步骤 4: 创建用户实例

如果扩展的用户没有带来任何附加字段,可以使用创建用户命令php bin/console pts:user:create

注意:在实现自己的用户并未覆盖密码创建流程时,使用$user->setPlainPassword('1234')方法在将其持久化到数据库之前自动编码它

步骤 4: 您现在可以登录

访问导入的登录路由,例如:mywebsite.com/[前缀]login

自定义

要自定义登录表单,请添加模板文件/templates/bundles/PlumTreeSystemsUserBundle/security/login.html.twig,最好复制并修改原始文件。