inem0o/user-password-lost-bundle

用于 Symfony3 的用户密码恢复包

1.0.5 2022-10-03 13:34 UTC

This package is auto-updated.

Last update: 2024-08-30 01:23:20 UTC


README

注意:该包与 Symfony 3.0 及以上版本兼容。

1. 首先将此包下载到您的项目中。首选方式是使用 Composer 包管理器。

"require": {
    "inem0o/user-password-lost-bundle": "dev-master"
}

2. 配置内核

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new inem0o\UserPasswordLostBundle\UserPasswordLostBundle(),
        // ...
    );
}

3. 配置包

# app/config/config.yml
  user_password_lost:
      user_repo_name: "AppBundle:User"
      user_email_column_name: "email"

      email_from: "contact@site.net"

      route_to_redirect_on_failure: "homepage"
      route_to_redirect_on_success: "login"

      display_success_flashbag: true

      forms:
            constraints:
                    - {form_name: form_password_request, field: user_email, class: Symfony\Component\Validator\Constraints\NotBlank, params: {message: 'Email field cannot be blank'}}

4. 配置路由

# app/config/routing.yml
user_password_lost:
  resource: "@UserPasswordLostBundle/Resources/config/routing.yml"
  prefix:   /

4. 覆盖模板

Copy all templates from

./vendor/inem0o/user-password-lost-bundle/inem0o/UserPasswordLostBundle/Resources/views/*

into the folder

./app/Resources/UserPasswordLostBundle/views

5. 覆盖翻译

Copy all translation files from

./vendor/inem0o/user-password-lost-bundle/inem0o/UserPasswordLostBundle/Resources/translations/userPasswordLostBundle.*.xliff

into the folder

./app/Resources/translations/userPasswordLostBundle.*.xliff

事件

UserPasswordLostBundle 在密码重置成功时触发一个事件:inem0o.userpasswordlostbundle.successful_reset。该事件包含请求新密码的用户,可以通过 $event->getUser() 获取器访问。您需要注册一个监听器来捕获它。

示例:(假设您将事件命名为 PasswordResetSuccessListener,回调方法为 onSuccessfulReset

# src/Acme/AppBundle/Resources/config/services.yml
acme.user.reset_password_success.listener:
        class: Acme\AppBundle\EventListener\PasswordResetSuccessListener
        tags:
          - { name: kernel.event_listener, event: inem0o.userpasswordlostbundle.successful_reset, method: onSuccessfulReset }