【问题标题】:Add constraint on resetting password添加对重置密码的约束
【发布时间】:2018-04-09 08:14:01
【问题描述】:

我想在我的 Symfony2.8 项目中添加密码约束。我尝试创建的第一个约束是密码的最小长度。

目前我只使用丢失密码的邮件实现了重置密码功能。

所以我所做的是在MyUsersBundle/Resources/config 中创建一个validation.xml 文件

<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
        http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    <!--
 ! Password Constraint
 !-->
    <class name="FOS\UserBundle\Form\Model\ChangePassword">
        <property name="plainPassword">
<constraint name="Length">
                <option name="min">8</option>
                <option name="minMessage">fos_user.new_password.short</option>
                <option name="groups">
                    <value>MyChangePassword</value>
                </option>
            </constraint>
        </property>
    </class>
</constraint-mapping>

为了使其活跃,我修改了config.yml 并添加了

fos_user:
    ...
    change_password:
            form:
                validation_groups: [MyChangePassword, Default]

但是,当我尝试通过重置链接更改密码时,即使它不遵守约束,它也会更改我的密码。

你知道我做错了什么吗?在config.yml 中,我也尝试使用resetting 而不是change_password 做同样的事情。

【问题讨论】:

    标签: php symfony fosuserbundle php-5.6 symfony-2.8


    【解决方案1】:

    我终于找到了哪里出了问题。

    首先在config.yml 右行是resetting 而不是change_password,因为我正在使用重置密码功能。

    #var/www/MyProject/app/config/config.yml
    fos_user:
        ...
        resetting:
                form:
                    validation_groups: [MyChangePassword, Default]
    

    另一个错误是MyUsersBundle/Resources/config/validation.xml 中的类名。我不需要使用FOS\UserBundle\Model\User 而不是FOS\UserBundle\Form\Model\ChangePassword

    #/MyProject/src/MyUsersBundle/Resources/config/validation.xml
    <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
            http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
        <!--
     ! Password Constraint
     !-->
        <class name="FOS\UserBundle\Model\User">
            <property name="plainPassword">
    <constraint name="Length">
                    <option name="min">8</option>
                    <option name="minMessage">fos_user.new_password.short</option>
                    <option name="groups">
                        <value>MyChangePassword</value>
                    </option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-16
      • 2015-01-10
      • 2019-08-05
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      相关资源
      最近更新 更多