robinbrackez / password-expiration-bundle
Symfony 扩展包,用于强制用户定期更改密码。
1.0.0-alpha5
2024-01-28 13:52 UTC
Requires
- php: >=8.1
- doctrine/orm: ^2.6
- symfony/framework-bundle: ^5.4|^6.0
- symfony/security-bundle: ^5.4|^6.0
- symfony/security-core: ^5.4|^6.0
This package is auto-updated.
Last update: 2024-09-28 15:23:51 UTC
README
关于
Symfony 扩展包,用于强制用户每 X 天更改一次密码,并跟踪密码更改时间。
除非用户更改密码,否则不允许用户导航到任何页面。
它可以与 EasyAdmin 扩展包集成,但这不是必需的。
此扩展包适用于使用 MVC 模式的 Symfony 项目,不适用于 api。
它不支持多种登录方式,因此不支持有不同登录页面供管理员和用户使用的网站。
安装
composer req robinbrackez/password-expiration-bundle
将扩展包添加到 config/bundles.php
RobinBrackez\PasswordExpirationBundle\PasswordExpirationBundle::class => ['all' => true],
将扩展包添加到您的 User 类中
实现 RobinBrackez\PasswordExpirationBundle\User\PasswordExpirableInterface
使用 RobinBrackez\PasswordExpirationBundle\User\PasswordExpirableTrait
例如
namespace App\Entity\User;
use RobinBrackez\PasswordExpirationBundle\User\PasswordExpirableInterface;
use RobinBrackez\PasswordExpirationBundle\User\PasswordExpirableTrait;
class User implements PasswordExpirableInterface {
use PasswordExpirableTrait;
创建并运行 迁移 以将 password_changed_at
字段添加到 User 表中。
您的 User 实体中必须有一个名为 'password' 的属性,这是监听器需要检查的。
配置
- changePasswordRouteName:更改密码的路由名称
- passwordMaxDaysOld:用户需要更改密码的年龄(天数)
- easyadmin.changePasswordControllerName:当与 EasyAdmin 一起工作时,传递处理密码更改的控制器 FQDN
- easyadmin.changePasswordControllerActionName:当与 EasyAdmin 一起工作时,传递处理密码更改的控制器动作名称
例如
parameters:
changePasswordRouteName: 'app_change_password'
passwordMaxDaysOld: 30 # every month
easyadmin.changePasswordControllerName: 'App\Controller\Admin\UserCrudController'
easyadmin.changePasswordControllerActionName: 'changePassword' # this is the method name of the changePasswordRouteName
如果您没有 EasyAdmin,则省略与 easyadmin 相关的参数
仅 GET 请求
它仅转发 GET 请求,而不是 POST 或其他请求,以避免用户在提交表单后失去更改。
版本
支持 Symfony 5.4 和 6.x
尚未创建 Symfony 7.x 分支
Symfony 6.4 可能会收到弃用通知。