FOS用户捆绑密码验证

时间:2018-06-21 08:12:13

标签: symfony passwords fosuserbundle

我正在尝试使用FOS用户捆绑包设置用户密码的最小字符数限制,无论是用于注册还是重置密码

我已经检查了文档并搜索了github问题/ stackoverflow,但是对我来说,一切都不是很清楚。似乎每个人都有不同的方式来执行此操作,而且似乎没有一个与我的情况相符。

首先,我检查了文档:https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_validation.html

因此,我转到了validation.xml文件,并将普通密码的最小大小从2更改为8:

<option name="min">8</option>

是的,直接在捆绑包中。这只是为了测试。但这没什么改变

我发现的一种方法是在用户实体的plainPassword字段上放置一个@Assert正则表达式。 https://github.com/FriendsOfSymfony/FOSUserBundle/issues/986

问题是:我的密码已加密,所以我没有任何普通密码字段。注册后,密码会在usersController中添加盐分,因此,我认为这种方式不适用于我的API。

那么您将如何快速而又轻松地实现这一目标?

干杯!

1 个答案:

答案 0 :(得分:1)

正如@IwanWijaya所说,您可以按照说明文件进行操作 https://symfony.com/doc/3.3/bundles/override.html

src / Acme / UserBundle / Resources / config / validation.yml

FOS\UserBundle\Model\User:
    properties:
        plainPassword:
            - NotBlank:
                groups: [AcmeValidation]
            - Length:
                min: 6
                minMessage: fos_user.password.short
                groups: [AcmeValidation]