我正在尝试使用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。
那么您将如何快速而又轻松地实现这一目标?
干杯!
答案 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]